python matplotlib在一张画布上画多个图的两种方法,plt.subplot(),plt.subplots()。

您所在的位置:网站首页 多图怎么拼在一起打印 python matplotlib在一张画布上画多个图的两种方法,plt.subplot(),plt.subplots()。

python matplotlib在一张画布上画多个图的两种方法,plt.subplot(),plt.subplots()。

2024-06-18 01:11| 来源: 网络整理| 查看: 265

Matplotlib在一张画布上画多个图的两种方法,plt.subplot,plt.subplots。

目录 回顾plt.subplots()画法plt.subplot()画法保存

回顾

之前也用过plt.subplots()在一张图上画过多个图,今天看到用plt.subplot()的画法想着也来实现下,同时也发现了两者之间的优缺点,感觉subplot()更便捷一点。其实两者都是别人写好的库函数,只要理解好库函数的传递参数的参数,合理的将自己传入的参数整理,两者都容易上手的。 这里我用的是jupyter notebook 画的,工具挺多的。

plt.subplots()画法 import matplotlib.pyplot as plt import numpy as np #数据 v1 = [5, 20, 36, 10, 75, 90] v2 = [10, 25, 8, 60, 20, 80] attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"] #plt.subplots()是一个函数,返回一个包含figure和axes数组对象的元组 figure ,axes =plt.subplots(2,2,figsize=(18,12),dpi=100) # 设置显示中文 plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体 plt.rcParams['axes.unicode_minus']=False # 正常显示负号 ax = axes.flatten() #子图展平,将ax由n*m的Axes组展平成1*nm的Axes组(二维变一维) # 绘制直方图 # data:必选参数,绘图数据 # bins:直方图的长条形数目,可选项,默认为10 # facecolor:长条形的颜色 # edgecolor:长条形边框的颜色 data = np.random.randn(1000)# 随机生成(1000)服从正态分布的数据 axes[0][0].hist(data,bins=30,facecolor='blue',edgecolor='red') axes[0][0].set_xlabel("区间")# 显示横轴标签 axes[0][0].set_ylabel("频数/频率")# 显示纵轴标签 axes[0][0].set_title("hist") # 绘制条形图 axes[0][1].bar(attr,v1,width=0.4, alpha=0.8, color='red', label="v1") # axes[0][1].bar(attr,v2,width=0.3, alpha=0.8, color='green', label="v2") axes[0][1].set_title("bar") axes[0][1].set_xlabel("类别")# 显示横轴标签 axes[0][1].set_ylabel("销量")# 显示纵轴标签 axes[0][1].legend() # 绘制条形图 ax[2].bar(attr,v2,width=0.4, alpha=0.8, color='green', label="v1") # axes[0][1].bar(attr,v2,width=0.3, alpha=0.8, color='green', label="v2") ax[2].set_title("bar1") ax[2].set_xlabel("类别")# 显示横轴标签 ax[2].set_ylabel("销量")# 显示纵轴标签 ax[2].legend() # 绘制饼图 sum =0 for data in v2: sum+=data d =[] for data in v2: d.append(data/sum) explode = [0.06,0,0,0,0.05,0] ax[3].pie(x=d,labels=attr,autopct = '%3.2f%%', colors=('b', 'g', 'r', 'c', 'm', 'y'),explode=explode) ax[3].set_title("pie") ax[3].axis('equal') ax[3].legend() # x (每一块)的比例,如果sum(x) > 1会使用sum(x)归一化 # labels (每一块)饼图外侧显示的说明文字 # explode (每一块)离开中心距离 # startangle 起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起 # shadow 是否阴影 # labeldistance label绘制位置,相对于半径的比例, 如


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3