Matplotlib是一个Python的一个数据可视化包,和matlab的绘图相对应,下面是对Matplotlib库函数的一些讲解。
首先是Matplotlib库的安装,这里直接使用pip安装,输入指令:
pip install matplotlib
首先事figure()函数,这个函数的作用是创建一个画布。
figure(num=None, # autoincrement if None, else integer from 1-N
figsize=None, # defaults to rc figure.figsize
dpi=None, # defaults to rc figure.dpi
facecolor=None, # defaults to rc figure.facecolor
edgecolor=None, # defaults to rc figure.edgecolor
frameon=True,
FigureClass=Figure,
clear=False,
**kwargs
)
这里挑常用的参数进行讲解,参数解释如下:
num:图形编号或名称,取值为数字/字符串 figsize:绘图对象的宽和高 dpi:绘图对象的分辨率,缺省值为80 facecolor:背景颜色 edgecolor:边框颜色 frameon:表示是否显示边框
代码:
import matplotlib.pyplot as plt plt.figure(num="matplotlib",figsize=(4,4),facecolor='r',edgecolor='b',frameon=True) plt.plot() plt.show()
运行结果:
绘制子图的函数subplot():
subplot(row, column,order):
参数解释:
row:行
column:列
order:子图的序列
代码:
import matplotlib.pyplot as plt
plt.figure("matplotlib",facecolor="r")
plt.subplot(1,2,1)
plt.subplot(1,2,2)
plt.show()
运行结果:
在有时候我们想给图添加中文元素,但是会出现乱码或报错,需要引入运行参数rcParams,其配置如下:
plt.rcParams['font.family']="SimHei"
几种常见字体,其他可自行查询。
| 中文字体 | 英文描述 | 中文字体 | 英文描述 |
|---|---|---|---|
| 宋体 | SimSun | 黑体 | SimHei |
| 微软雅黑 | Microsoft YaHe | 微软正黑体 | Microsoft JhengH |
| 楷体 | KaiTi | 仿宋 | FangSong |
| 隶书 | LiSu | 幼圆 | YouYuan |
为图添加标题函数:
suptitle(标题): title(标题)
其中suptitle对应于全局标题,title对应于子图的标题。
代码:
import matplotlib.pyplot as plt
plt.rcParams['font.family']="SimHei"
plt.figure()
plt.suptitle("全局标题")
plt.subplot(221)
plt.title("子标题1")
plt.subplot(222)
plt.title("子标题2")
plt.subplot(223)
plt.title("子标题3")
plt.subplot(224)
plt.title("子标题4")
# plt.tight_layout()
plt.show()
运行结果:
可以看子标题3、4和子图1、2之间的间距不合适,有部分遮挡,这时可以使用tight_layout()函数,自动调整子图,消除遮挡,将上面隐去的代码恢复即可。
在使用到负号时也可能会因符号问题导致图中出现空白格,可以在代码段总放着一条语句:
plt.rcParams["axes.unicode_minus"]=False # 解决负号问题
添加文本函数text():
text( x, y, s, fontsize,color )
参数解释:
x:文字的横坐标(根据坐标轴范围变动)
y:文字的列坐标
s:文字(string格式)
fontsize:字体大小
color:字体颜色
其中坐标是根据坐标轴范围变动
代码:
import matplotlib.pyplot as plt
plt.figure("matplotlib",facecolor="w")
plt.plot()
plt.text(0.03,0.03,s="matplotlib",color="r")
plt.show()
运行结果:



