最后一次更新日期: 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)










网友评论