利用自定义布局的GridSpec实例,在画布上创建坐标系实例

一、自定义布局

matplotlib 的 gridspec 模块是专门指定画布中子图位置的模块,该模块中包含一个 GridSpec 类,通过显式地创建 GridSpec 类对象来自定义画布中子图的布局结构,使得子图能够更好地适应画布。GridSpec 类的构造方法的语法格式如下:

GridSpec (nrows, ncols, figure=None, left=None, bottom-None, right=None, top=None, wspace=None, hspace=None, width_ratios=None, height_ ratios=None)

该方法常用参数的含义如下。

nrows : 表示行数。

ncols : 表示列数。

figure : 表示布局的画布。

left, bottom, right, top : 表示子图的范围。

wspace : 表示子图之间预留的宽度量。

hspace : 表示子图之间预留的高度量。

GridSpec 类对象的使用方式与数组的使用方式相似,采用索引或切片的形式访问每个布局元素。此外,matplotlib 中还为 Figure 对象提供了快速添加布局结构的方法 add_ gridspec() 。

二、共享相邻子图的坐标轴

注意:两个坐标系间共享坐标轴,以刻度范围最大的轴作为共享轴。

当 pyplot 使用 subplots () 函数绘制子图时,可以通过 sharex 或 sharey 参数控制是否共享 x 轴或 y 轴。sharex 或sharey 参数支持 False 或 'none' 、True 或 'all' 、'row'、 'col' 中任一取值, 关于这些取值的含义如下。

True 或 'all' : 表示所有子图之间共享 x 轴或 y 轴。

False 或 'none' : 表示所有子图之间不共享 x 轴或 y 轴。

'row' : 表示每一行的子图之间共享 x 轴或 y 轴。

'col' : 表示每一列的子图之间共享 x 轴或y 轴。

三、示例:利用自定义布局的GridSpec实例,在画布上创建如图所示的坐标系实例

# get_ipython().run_line_magic('matplotlib', 'notebook') 是一种在Python脚本中使用交互式Matplotlib图形的方法。
# 它会在脚本中启用交互式图形,允许用户对图形进行缩放、平移和旋转等操作。
get_ipython().run_line_magic('matplotlib', 'notebook')

# 导入 matplotlib 库中的 pyplot 模块并命名为 plt
import matplotlib.pyplot as plt

# 导入 matplotlib 库中的 gridspec 模块并命名为 gridspec
import matplotlib.gridspec as gridspec

# 设置中文
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False

#1.创建画布实例
fig2 = plt.figure()

#2.创建“区域规划图”实例
spec2 = gridspec.GridSpec(3,4, figure=fig2)

#3.根据给定的“区域规划图”,创建对应的坐标系实例
ax1 = plt.subplot(spec2[0,0:4], sharey = ax5)  # sharey 参数是控制是否共享y轴
ax2 = plt.subplot(spec2[1,0:2], sharey = ax5)
ax3 = plt.subplot(spec2[1,2:4], sharey = ax5)
ax4 = plt.subplot(spec2[2,0], polar = True)   # 绘制雷达图的函数:polar()
ax5 = plt.subplot(spec2[2,1:4])

# 设置紧密布局
plt.tight_layout(pad=0.5, h_pad=0.01, w_pad=0.4)

# 设置 y 轴标签刻度
plt.yticks([0.00, 0.25, 0.50, 0.75, 1.00])

# 展示图表
plt.show()

四、图表形成样式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值