先看一个最简单的例子
import matplotlib.pyplot as plt
plt.figure()
plt.subplot(211)
plt.plot([1,2,3], color=''r", linestyle='--')
plt.show()
1、figure的使用:自定义整张画布
语法:figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
num:图像编号或名称,数字为编号,字符串为名称
figsize:指定图像的宽和高,单位为英寸(1英寸为2.5cm)
dpi:指定绘图对象的分辨率,即每英寸多少个像素,默认是80
facecolor:背景颜色
edgecolor:边框颜色
frameon:是否显示边框
plt.figure("test",figsize=(5,5), dpi=100, facecolor='c', edgecolor='b', frameon=True)
plt.show()
2、subplot:创建单个子图
将figure规划为多个子图,但是没跳subplot命令只会创建一个子图
语法:subplot(nrows, ncols, sharex, sharey, subplot_kw, **fig_kw)
nrows:将画布划分为n行
ncols:将画布划分为n列
sharex:所有subplot将使用相同的X轴刻度
sharey:所有的subplot将使用相同的y轴刻度
subplot_kw:用于创建各个subplot的关键字字典
**fig_kw:创建fig时其他关键字,如plt.subplots(2,2,figsize=(5,5))
3、add_subplots:创建多个子图
add_subplots是面向figure对象编程的,matplotlib的pyplot中没有此命令
语法和subplot类似
fig, axes = plt.subplots(2,2) # 将画图分成了横向两块,纵向两块
ax1 = axes[0,0]
ax2 = axes[0,1]
ax3 = axes[1,0]
ax4 = axes[1,1]
# 画图
ax1.plot(x,x)
ax2.plot(x,-x)
ax2.grid(color='r', linestyle='--', alpha=0.3)
plt.show()
4、add_axes:新增子区域
此方法也是面向figure对象编程的,pyplot也是没有此命令的。
add_axes为新增子区域,该区域可以任意大小,可以落座在figure画布内的任意位置。
适合做一些图中图
f = plt.figure()
x = [1,2,3,4,5,6,7,8,9]
y = [1,4,2,3,5,6,8,9,1]
# 设置绘制图形的起始位置及宽高,从figure的10%位置开始绘制,宽高是figure的80%
l,b,w,h = 0.1,0.1,0.8,0.8
ax1 = f.add_axes(l,b,w,h)
ax1.plot(x,y,'r')
# 绘制图形2的起始位置,左边从20%开始画,底部从画布的60%处开始画,宽高是画布的25%
l,b,w,h = 0.2,0.6,0.25,0.25
ax2 = f.add_axes(l,b,w,h)
ax2.plot(x,y,'b')
plt.show()
更多相关知识,可以查看官方文档说明:https://matplotlib.org/contents.html