平面图绘制(2.多子图绘制)
#导入所需要的库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
1.plt.subplot方式
函数讲解:matplotlib.pyplot.subplot(xyz)
xyz分别代表行数/列数/当前是第几个图
xyz 也可写成:[x,y,z]
真实示例
#第一个图(折线图)
x = np.arange(0,50)
plt.subplot(221) #一共四个图,排列方式为二行二列
plt.plot(x,x**2)
#第二个图(条形图)
plt.subplot(222) #一共四个图,排列方式为二行二列
plt.bar([20,55,60,40,10],[20,80,99,37,50],color = 'b')
#第三个图(散点图)
plt.subplot(223) #一共四个图,排列方式为二行二列
plt.scatter([20,55,60,20,10],[10,80,99,37,1])
#第四个图(饼图)
plt.subplot(224)
plt.pie([50,20,48,99],labels = ['a','b','c','d'],autopct='%.0f')
plt.show()
2.fig.add_subplot方式
函数讲解:fig.add_subplot(xyz)
xyz分别代表行数/列数/当前是第几个图
xyz 也可写成:[x,y,z]
真实示例
#创建一个画布,在这个画布上进行子图绘制
fig=plt.figure()
#第一个图(散点图)
ax1 = fig.add_subplot(221) #一共四个图,排列方式为二行二列
ax1.scatter([20,55,60,20,10],[10,80,99,37,1])
#第二个图(折线图)
x = np.random.randint(10,50,10)
ax2 = fig.add_subplot(222) #一共四个图,排列方式为二行二列
ax2.plot(x,x**2)
#第三个图(饼图)
ax3 = fig.add_subplot(223)
ax3.pie([50,20,48,99],labels = ['a','b','c','d'],autopct='%.0f')
#第四个图(条形图)
ax4= fig.add_subplot(224)#一共四个图,排列方式为二行二列
ax4.bar([20,55,60,40,10],[20,80,99,37,50],color = 'b')
plt.show()
3.plt.subplots方式
函数讲解:fig,ax = plt.subplots(x,y)
fig:画布
ax:子图
x:子图行数 y:子图列数
真实示例
#创建画布以及子图
fig,ax = plt.subplots(2,2)
#第一个图(散点图)
ax[0][0].scatter([20,55,60,20,10],[10,80,99,37,1])
#第二个图(折线图)
x = np.random.randint(10,50,10)
ax[0][1].plot(x,x**2)
#第三个图(饼图)
ax[1][0].pie([50,20,48,99],labels = ['a','b','c','d'],autopct='%.0f')
#第四个图(条形图)
ax[1][1].bar([20,55,60,40,10],[20,80,99,37,50],color = 'b')
plt.show()
4.不规则子图绘制
函数讲解:plt.subplot(2,2)
想要第一行只有一个子图,那就先把画布当成2*1的形状划分
在211位置绘制第一行的子图
在223、224位置分别绘制第二幅图和第三幅图即可
#例如:第一行一个子图,
#第二行两个子图
#第一个图(折线图)
x = np.arange(0,50)
plt.subplot(211) #一共三个图,第一行就一个子图
plt.plot(x,x**2)
#第二个图(条形图)
plt.subplot(223) #一共三个图,第二行第一个子图
plt.bar([20,55,60,40,10],[20,80,99,37,50],color = 'b')
#第三个图(散点图)
plt.subplot(224) #一共三个图,第二行第二个子图
plt.scatter([20,55,60,20,10],[10,80,99,37,1])
plt.show()