matplotlib实际上是一套面向对象的绘图库,它所绘制的图表中的每个绘图元素,例如线条Line2D、文字Text、刻度等在内存中都有一个对象与之对应。
为了方便快速绘图matplotlib通过pyplot模块提供了一套和MATLAB类似的绘图API,将众多绘图对象所构成的复杂结构隐藏在这套API内部。我们只需要调用pyplot模块所提供的函数就可以实现快速绘图以及设置图表的各种细节。pyplot模块虽然用法简单,但不适合在较大的应用程序中使用。
为了将面向对象的绘图库包装成只使用函数的调用接口,pyplot模块的内部保存了当前图表以及当前子图等信息。当前的图表和子图可以使用plt.gcf()和plt.gca()获得,分别表示"Get Current Figure"和"Get Current Axes"。在pyplot模块中,许多函数都是对当前的Figure或Axes对象进行处理,比如说:
plt.plot()实际上会通过plt.gca()获得当前的Axes对象ax,然后再调用ax.plot()方法实现真正的绘图。
它的文档相当完备,并且 Gallery页面 中有上百幅缩略图,打开之后都有源程序。因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定。
可以在Ipython中输入类似"plt.plot??"的命令查看pyplot模块的函数是如何对各种绘图对象进行包装的。
1、pyplot.plot(*args, **kwargs)
这个函数有两个参数,一个可变参数,一个命名参数。可变参数可以指定三个参数,x,y序列和线条格式字符串,下面的例子是一些常用的搭配
plot(x, y) # plot x and y using default line style and color
plot(x, y, 'bo') # plot x and y using blue circle markers
plot(y) # plot y using x as index array 0..N-1
plot(y, 'r+') # ditto, but with red plusses
如果没有使用命名参数,那么可以设置任意组的x,y,格式字符串,例如:
a.plot(x1, y1, 'g^', x2, y2, 'g-')
plot的返回值类型是matplotlib.lines.Line2D object
如果不指定plot会采用默认的线条和颜色,下面给出线条和颜色的可设值
线条值
================ ===============================
character description
================ ===============================
``'-'`` solid line style 实线
``'--'`` dashed line style 虚线
``'-.'`` dash-dot line style 虚点线
``':'`` dotted line style 点线
``'.'`` point marker 圆点作点
``','`` pixel marker
``'o'`` circle marker 蓝色圆圈作点
``'v'`` triangle_down marker 下三角作点
``'^'`` triangle_up marker 上三角作点
``'<'`` triangle_left marker
``'>'`` triangle_right marker
``'1'`` tri_down marker
``'2'`` tri_up marker
``'3'`` tri_left marker
``'4'`` tri_right marker
``'s'`` square marker
``'p'`` pentagon marker
``'*'`` star marker
``'h'`` hexagon1 marker
``'H'`` hexagon2 marker
``'+'`` plus marker
``'x'`` x marker
``'D'`` diamond marker
``'d'`` thin_diamond marker
``'|'`` vline marker
``'_'`` hline marker
================ ===============================
颜色值
========== ========
character color
========== ========
'b' blue
'g' green
'r' red
'c' cyan
'm' magenta
'y' yellow
'k' black
'w' white
========== ========
命名参数可以用来设置线条的属性,每个属性都有一个set_...的方法,可以用来设置线条的标签,线宽等等
字符串格式指定格式只是缩写的形式,可以不用缩写的形式,只用命名参数的形式设定线条的格式,示例如下
命名参数的属性就是类matplotlib.lines.Line2D的属性,对应的属性有
2、plt.figure
plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>, **kwargs)
作用:创建一个新的figure或者返回当前已存在的figure
参数
num:可选参数,可以是整数或字符串如果没有指定该参数,则会创建一个新figure,同时返回的figure对象里的num属性自动加1;如果指定了该参数,那么如果指定num的figure对象已存在,则返回这个已存在的figure对象,否则就创建一个新的figure对象。
figsize:可选参数,整形的元组,指定figure的宽度和长度,单位为英寸,缺省值为[6.4, 4.8]
dpi:可选参数,指定figure的分辨率,即每英寸多少个像素,缺省值为100。
facecolor:背景颜色
edgecolor:边框颜色
返回值:figure对象
说明:如果创建了很多figure对象,要确保对不用的figure对象调用了close方法,因为这有利于减少内存占用。
plt类的rcParams字典属性定义了各属性的默认值,这可以在matplotlibrc文件中修改,rcParams是一个字典类型,可以查看其全部的属性值,也可以通过下标查看指定的属性值,
例如:
plt还有 一个rc_params 函数,它返回配置字典rcParams
Matplotlib 使用配置文件 matplotlibrc 时的搜索顺序如下:
- 当前路径 : 程序的当前路径
- 用户配置路径 : 通常为 HOME/.matplotlib/,可以通过环境变量MATPLOTLIBRC修改
- 系统配置路径 : 保存在 matplotlib的安装目录下的 mpl-data 下
通过下面的语句可以获取用户配置路径:
>>> import matplotlib
>>> matplotlib.get_configdir(