python子图之间的距离_matplotlib库:子图

1.子图简介

将各个图形绘制在一张画布中,并以矩阵的形式进行排列,就形成了矩阵子图。子图可以帮我们更方便地对比各数据变化趋势。

2.核心函数及参数介绍

# 子图创建方式一subplot(nrows,ncols,index,projection,sharex,sharey)作用:创建子图。返回值:坐标轴对象。参数:nrows--行数;ncols--列数;index--子图序号;projection--坐标系,默认为直角坐标系,设置为'polar'为极坐标系;sharex、sharey--设置各子图间相同的x轴、y轴刻度。说明:1.上述参数均可缺省,即仅获得坐标轴对象;2.行数、列数、序号之间的逗号可省略,例如subplot(2,1,1)等同于subplot(211)。
# 子图创建方式二subplots(nrows,ncols,sharex,sharey)作用:创建布局好的矩阵子图。返回值:fig,ax。参数:nrows--行数;ncols--列数;sharex--是否共享X轴;默认False不共享,设置为True则共享;sharey--是否共享Y轴,默认False不共享,设置为True则共享;
# 子图创建方式三fig=plt.figure()fig.add_subplot()说明:上述函数与subplot()函数参数及意义相同。
# 子图之间间距调整subplots_adjust(left,bottom,right,top,wspace,hspace)作用:调整子图间距。参数:left--图形到左边缘距离;bottom--图形到下边缘距离;right--图形到右边缘距离;top--图形到上边缘距离;wspace--各子图间横向间距;hspace--各子图间纵向间距;

在绘制子图矩阵时,有时各子图内容之间会出现部分重叠的现象,因此常常需要对各子图之间的间距进行调整,使内容能够较好地呈现。

3.子图实例展示

import matplotlib.pyplot as plt# 数据x = [1, 2, 3, 4]apple = [1, 4, 9, 16]orange = [1, 8, 27, 64]banana = [1, 16, 54, 128]watermelon = [2, 23, 67, 100]plt.rc('font', family='STSong')fig, ax = plt.subplots(2,2,sharex=True)# 子图1ax[0,0].scatter(x, apple, c='blue')ax[0,0].set_ylabel('苹果产量')# 子图2ax[0,1].scatter(x, orange, c='cyan')ax[0,1].set_ylabel('橘子产量')# 子图3ax[1,0].scatter(x, banana, c='red')ax[1,0].set_ylabel('香蕉产量')ax[1,0].set_xlabel('年限')# 子图4ax[1,1].scatter(x, watermelon,c='lime')ax[1,1].set_ylabel('西瓜产量')ax[1,1].set_xlabel('年限')# 子图间距调整plt.subplots_adjust(wspace=0.3)plt.show()
8d63874e83afab43ba3f34244aa82c99.png

上述代码结果图

import matplotlib.pyplot as plt# 数据year = [1, 2, 3, 4]apple = [1, 4, 9, 16]orange = [1, 8, 27, 64]banana = [1, 16, 54, 80]fig = plt.figure()plt.rc('font', family='STSong')# 子图1ax1 = fig.add_subplot(311)ax1.plot(year, apple, 'o-', c='blue')ax1.set_title('各水果产量与年限的关系')ax1.xaxis.set_major_locator(plt.NullLocator())ax1.set_ylabel('苹果产量')# 子图2ax2 = fig.add_subplot(312,sharex=ax1)ax2.plot(year, orange, 'o-', c='cyan')ax2.set_ylabel('橘子产量')# 子图3ax3 = fig.add_subplot(313)ax3.plot(year, banana, 'o-', c='red')ax3.set_ylabel('香蕉产量')ax3.set_xlabel('年限')# 子图间距调整plt.subplots_adjust(hspace=1.0)plt.tight_layout()plt.show()
7e69b6e5804ed6ec61e476c8eb0a57a1.png

上述代码结果图

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值