平面图绘制(2.多子图绘制)

平面图绘制(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()

不规则子图示例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值