最后一次更新日期: 2019/4/20
Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。
按需导入以下模块:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
1. 投影projection
projection
参数用于设置生成的Axes
类型,在add_axes
、add_subplot
等方法中可使用。
常用的几个类型:
'rectilinear'
:直线坐标轴,即2d的xy坐标轴,默认值;
'3d'
:3D的xyz坐标轴,绘制3d图像会使用这个,注意,使用该类型前必须先导入Axes3D
;
'polar'
:极坐标轴。
2. 字体font
plt.rcParams['font.sans-serif']
属性用于设置默认字体,当图像中中文显示存在问题时,可通过该项将字体设置为支持中文的字体,例如['SimHei']
黑体;
plt.rcParams['font.size']
属性用于设置默认字体大小。
也可以仅在特定文本上应用字体,fontsize
参数设置字体大小,fontproperties
参数设置字体,在suptitle
、set_title
、text
等用于定义文字显示的方法中可使用。
当负号无法正常显示时,设置plt.rcParams['axes.unicode_minus']=False
。
3. 颜色color
多以color
或colors
参数设置主体颜色或颜色序列,简写形式c
,也有单独设置某个部分颜色的参数:facecolor
设置填充颜色,简写形式fc
;edgecolor
设置边缘颜色,简写形式ec
。
支持多种标识颜色的方式:
(1). 以tuple
表示的RGB或RGBA值,取值范围在0.~1.,例如(0.1,0.2,0.5)
;
(2). 以str
表示的16进制的RGB或RGBA值,取值范围00~FF,例如'#0F0F0F'
;
(3). 以str
表示的颜色标签,可参考下图(官方示例)。
除了单个颜色外,matplotlib还提供了colormap,是特定主题的颜色集合,一般通过cmap
参数设置,而预定义的colormap在plt.cm
下,可用种类详见官方文档。
4. 标题title
Figure.suptitle
或plt.suptitle
方法用于设置总标题;
Axes.set_title
或plt.title
方法以及创建Axes
时的title
参数用于设置子标题。
5. 坐标轴axis
xlabel
、ylabel
、zlabel
等方法用于设置坐标轴的标签;
xticks
、yticks
、zticks
等方法用于设置坐标轴的刻度,传入参数为刻度值列表和刻度标签列表,第二个参数可以省略,会以刻度值作为标签文字;
xlim
、ylim
、zlim
等方法用于设置坐标轴的范围,传入参数为开始值和结束值;
axis('off')
可以关闭坐标轴显示;
以上方法可通过plt
调用,Axes
则需要通过set_xlabel
等方法调用。
6. 图例legend
plt.plot(x,y1,label='sin')
plt.plot(x,y2,label='cos')
plt.legend()
plt.show()
legend
方法用于显示图例,绘图元素必须有标签才能正常生成图例,可在绘制图像时通过label
参数设置标签,或是调用legend
方法时传入标签列表。
loc
参数设置图例的位置,默认'best'
自动选择。
7. 标记样式marker
参数marker
设置标记样式,可选的样式参考官方文档-markers;
参数s
或markersize
设置标记大小。
标记样式可在散点图、曲线图等中设置。
8. 线条样式linestyle
参数linestyle
设置线条样式,一般默认'-'
实线,可选的样式见下方表格;
参数linewidth
设置线的宽度,简写形式lw
。
linestyle | 说明 |
---|---|
'-' or 'solid' | 实线 |
'--' or 'dashed' | 虚线 |
'-.' or 'dashdot' | 点划线 |
':' or 'dotted' | 点虚线 |
'None' or '' | 不绘制 |
线条样式在所有含线条的绘图对象中几乎都可以设置。
9. 透明度alpha
参数alpha
设置点的透明度,一般默认1.
,值越小透明度越高。
透明度在所有含平面的绘图对象中几乎都可以设置。
10. 旋转rotation
绘图元素旋转
fig=plt.figure(figsize=(4.5,3))
ax=fig.add_axes((0,0,1,1))
ax.plot(x,y1)
for tick in ax.get_xticklabels():
tick.set_rotation(90)
部分绘图元素是支持旋转的,可通过set_rotation
方法设置或是创建时通过rotation
参数设置,也有通过angle
参数控制旋转的。
3D图像旋转
fig=plt.figure(figsize=(12,3))
ax=fig.add_subplot(131,title='ax1',projection='3d')
ax.plot(x,y1)
ax=fig.add_subplot(132,title='ax2',projection='3d')
ax.view_init(30,80)
ax.plot(x,y1)
ax=fig.add_subplot(133,title='ax3',projection='3d')
ax.view_init(60,120)
ax.plot(x,y1)
Axes3D
的旋转通过view_init
方法实现,第一个参数elev
控制纵向的旋转角度,默认值30;第二个参数azim
控制横向的旋转角度,默认值120。
11. 子图布局调整adjust
#自动收缩布局
fig.tight_layout()
#调整子图分布
fig.subplots_adjust(left=0.1, bottom=0.1, right=0.9, top=0.9, wspace=0.1, hspace=0.1)