Matplotlib的详细使用及原理(一)+https://developer.aliyun.com/article/1543859?spm=a2c6h.13148508.setting.14.1fa24f0e1MwmMO
matplotlib标准用法
matplotlib的标准使用流程为:
- 创建一个
Figure
实例
- 使用
Figure
实例创建一个或者多个Axes
或Subplot
实例
- 使用
Axes
实例的辅助方法来创建primitive
>>>在matplotlib中,一个图形对象(Figure)中的坐标轴(Axes),Figure是一个顶层容器,用于容纳整个绘图区域。而Axes则是Figure内部的一个子容器,用于绘制具体的图形。
>>>Matplotlib库中的primitive,通常译为“原始对象”,是用于创建和操作图形的基元。这些基元包括线、矩形、圆形等,它们是构成复杂图形的基本元素。通过使用这些primitive,开发者可以灵活地定制和配置他们的图形。
import matplotlib.pyplot as plt import numpy as np fig = plt.figure() ax = fig.add_subplot(2, 1, 1) # two rows, one column, first plot t = np.arange(0.0, 1.0, 0.01) s = np.sin(2*np.pi*t) line, = ax.plot(t, s, color='blue', lw=2)
自定义你的Artist对象
Artist属性
在图形中的每一个元素都对应着一个matplotlib Artist,且都有其对应的配置属性列表。
Figure本身包含一个Rectangle,Rectangle的大小就是Figure的大小;你可以用来设置Figure的背景色和透明度。
每个Axes边界框(默认白底黑边),也有一个Rectangle,通过它可以设置Axes的颜色、透明度等。
Figure.patch属性:是一个Rectangle,代表了图表的矩形框,它的大小就是图表的大小, 并且可以通过它设置figure的背景色和透明度。
Axes.patch属性:也是一个Rectangle,代表了绘图坐标轴内部的矩形框(白底黑边), 通过它可以设置Axes的颜色、透明度等。
每个matplotlib Artist
都有以下属性:
.alpha
属性:透明度。值为0—1之间的浮点数
.axes
属性:返回这个Artist所属的axes,可能为None
.figure
属性:该Artist所属的Figure,可能为None
.label
:一个text label
.visible
:布尔值,控制Artist是否绘制
plt.figure().patch plt.axes().patch
属性调用方式
Artist对象的所有属性都通过相应的 get_*
和 set_*
函数进行读写。
例如下面的语句将alpha属性设置为当前值的一半:
a = o.get_alpha() o.set_alpha(0.5*a)
如果想一次设置多个属性,也可以用set方法:
o.set(alpha=0.5, zorder=2)
可以使用 matplotlib.artist.getp(o,"alpha")
来获取属性,如果指定属性名,则返回对象的该属性值;如果不指定属性名,则返回对象的所有的属性和值。
import matplotlib matplotlib.artist.getp(fig.patch)
基本元素 - primitives
我们还需要知道如何获取该对象。
Artist包含两种对象:基本要素-primitives 和 容器-containers。
primitives是基本要素,它包含一些我们要在绘图区作图用到的标准图形对象,如曲线Line2D,文本text,矩形Rectangle,图像image等。
container是容器,即用来装基本要素的地方,包括图形figure、坐标系Axes和坐标轴Axis。
在matplotlib中曲线的绘制,主要是通过类 matplotlib.lines.Line2D 来完成的。
它的基类: matplotlib.artist.Artist
matplotlib中线-line的含义:它表示可以是连接所有顶点的实线样式,也可以是每个顶点的标记。
它的构造函数:
class matplotlib.lines.Line2D(xdata, ydata, linewidth=None, linestyle=None, color=None, marker=None, markersize=None, markeredgewidth=None, markeredgecolor=None, markerfacecolor=None, markerfacecoloralt='none', fillstyle=None, antialiased=None, dash_capstyle=None, solid_capstyle=None, dash_joinstyle=None, solid_joinstyle=None, pickradius=5, drawstyle=None, markevery=None, **kwargs)
常用的的参数有:
- xdata:需要绘制的line中点的在x轴上的取值,若忽略,则默认为range(1,len(ydata)+1)
- ydata:需要绘制的line中点的在y轴上的取值
- linewidth:线条的宽度
- linestyle:线型
- color:线条的颜色
- markersize:标记的size
有三种方法可以用设置线的属性:
1) 直接在plot()函数中设置
2) 通过获得线对象,对线对象进行设置
x = range(0,5) y = [2,5,7,8,10] line ,= plt.plot(x, y, '-') # '-'表示线段的样式为实线 line.set_antialiased(False) # 关闭抗锯齿功能,使得线段的边缘更加平滑。
3) 获得线属性,使用setp()函数设置
x = range(0,5) y = [2,5,7,8,10] lines = plt.plot(x, y) plt.setp(lines, color='r', linewidth=10)
Matplotlib的详细使用及原理(三)+https://developer.aliyun.com/article/1543863?spm=a2c6h.13148508.setting.15.1fa24f0eFbYRn7