matplot 同时绘制多个图形(一)

2019-08-14 16:06:26 浏览数 (3)

matplotlib.pyplot中的subplot()函数可以用来在一张画布上绘制多个图形。

可以使用subplot(Rows,Columns,PltNum)这种参数形式:

Rows,Columns表示将画布划分Rows行、Columns列,共Rows*Columns个子区域。PltNum 表示子区域编号,左上角为1,从左到右,再从上到下依次递增。如,subplot(3,2,3)表示占3行2列的第2行第1列。

一般参数都是个位数,可以使用简写模式subplot(RCP), 如subplot(3,2,3)可简写成subplot(323)。

例子1,在非等分的画布上绘制多个图形:

代码语言:javascript复制
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
matplotlib.rcParams["font.sans-serif"] = ["SimHei"]
matplotlib.rcParams["axes.unicode_minus"] = False
X1 = np.linspace(0,20,1000)
Y1= np.e**(-X1) * np.sin(X1)
X2 = np.random.randn(1000) 100

#可以使用subplot(Rows,Columns,PltNum)这种形式,如plt.subplot(121)
plt.subplot(121)#也可以subplot(RCP)这种形式
plt.plot(X1,Y1,"r-")
plt.xlabel("x 轴标签",color ="b")
plt.ylabel("y 轴标签",color ="b")
plt.title("标题",color ="b")
plt.grid()

plt.subplot(122)
plt.hist(X2, color ='red', edgecolor='black')
plt.xlabel("x 轴标签",color ="b")
plt.ylabel("y 轴标签",color ="b")
plt.title("标题",color ="b")
plt.tight_layout()#使图形自动微调,放置标签和附近的图重叠
plt.show()

例子2,在非等分的画布上绘制多个图形:

代码语言:javascript复制
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
matplotlib.rcParams["font.sans-serif"] = ["SimHei"]
matplotlib.rcParams["axes.unicode_minus"] = False
X1 = np.linspace(0,20,1000)
Y1= np.e**(X1) * np.sin(X1)
X2 = np.random.randn(1000) 100

plt.subplot(211)
plt.plot(X1,Y1,"r-")
plt.xlabel("x 轴标签",color ="b")
plt.ylabel("y 轴标签",color ="b")
plt.title("标题1",color ="b")
plt.grid()

plt.subplot(223)
plt.hist(X2, color ='red', edgecolor='black')
plt.xlabel("x 轴标签",color ="b")
plt.ylabel("y 轴标签",color ="b")
plt.title("标题2",color ="b")
plt.subplot(224)
plt.boxplot([X2],labels=("G1",))
plt.ylabel("y 轴标签",color ="b")
plt.title("标题3",color ="b")

plt.suptitle("画布总标题")##
plt.tight_layout()
plt.show()

0 人点赞