本节主要探讨matplotlib子图的非均匀划分,并在文末补充了axes对象的常用属性。
二、非均匀子图划分
分均匀子图的语法均可用于均匀绘图
1)subplot()函数
语法:plt.subplot(nrows, ncols, index, **kwargs),参数解释参考上一节。
现在创建一个画布,有三个子区,子区1,2在第一行,子区3单独在第二行。
# 非均匀绘图
import matplotlib.pyplot as plt
fig = plt.figure(figsize = (6, 6)) #设置画布大小为6英寸*6英寸
ax1 = plt.subplot(221) #表示将画布分为2行2列,索引为1的子区
ax2 = plt.subplot(222) #表示将画布分为2行2列,索引为2的子区
ax3 = plt.subplot(212) #表示将画布分为2行1列,索引为2的子区
plt.show()
图1 subplot子图划分
关于ax3 = plt.subplot(212)的理解:因为子区都是在同一个画布上绘制的,每一个plt.subplot()都是指定一个划分规则并选中子区。ax1,ax2表示对画布分为4个均等子区,并且选中了第一个和第二个,剩下的第二行没有被选中。ax3语法则按照新的划分规则(分为2行1列)将画布重新划分,并占用第2行的部分,这一部分恰好是ax1和ax2所空出来的,完成了画布的不均等划分。
2)add_subplot()函数
语法:fig.add_subplot(nrows, ncols, index, **kwargs)
参数解释和subplot()类似。
现在创建一个画布,有三个子区,子区1,2在第一行,子区3单独在第二行。
fig = plt.figure(figsize = (5, 5))
ax1 = fig.add_subplot(221) #表示将画布分为2行2列,索引为1的子区
ax2 = fig.add_subplot(222) #表示将画布分为2行2列,索引为2的子区
ax3 = fig.add_subplot(212) #表示将画布分为2行1列,索引为2的子区
plt.show()
图2 add_subplot子图划分
3)subplot_mosaic()函数
语法:fig, axs = plt.subplot_mosaic(子图别称,layout, figsize) #笔者常用这两个参数。
参数解释参见上一节内容。
现在创建一个画布,有三个子区,子区1,2在第一行,子区3单独在第二行。
fig, ax = plt.subplot_mosaic('''
AB
CC''', layout = 'constrained', figsize = (6, 6))
ax['A'].set_title('Part A') #设置A子区标题
ax['B'].set_title('Part B')
ax['C'].set_title('Part C')
plt.show()
图3 subplot_mosaic子区划分
以上就是笔者用于不均匀子图划分的常用函数,上述子区都是axes对象,因此可以使用axes的方法属性对绘图区进行调整。
三、axes对象常用的属性
axes.set_xlim():设置x轴范围,axes.set_xlim(-5, 5)
axes.set_xlabel():设置x轴标签,axes.set_xlabel('x轴', font1),使用font1号新建字体样式,具体参考上一节第一个例子。
axes.set_xticks():设置x轴刻度,axes.set_xticks(range(-5, 6, 1),设置x轴刻度为[-5, -4, ..., 4, 5]
axes.get_xticklabels():获取x轴刻度列表。
[label.set_fontsize(size) for label in axes.get_xticklabels] 改变x轴刻度字体大小(配合获取刻度列表使用),同样,坐标轴刻度字体也要配合刻度列表使用。
x1_label = ax1.get_xticklabels() #获取x轴刻度列表
[label.set_fontsize(15) for label in x1_label] #改变x轴刻度字体大小
[label.set_fontname('Times New Roman') for label in x1_label] #设置坐标轴刻度字体
axes.legend(fontsize = 15):显示图例,并设置字体大小为15。
axes.set_title():设置标题。
更多的设置参考博客:
https://blog.csdn.net/weixin_44237337/article/details/116149154
本节的非均匀绘图到此结束,感谢阅读,下一节将进行统计图形绘制。
本文分享自 python数据可视化之美 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有