gpt4 book ai didi

python - 一些子图之间的间距,但不是全部

转载 作者:太空狗 更新时间:2023-10-29 20:10:46 27 4
gpt4 key购买 nike

我在 python 中有一个 matplotlib 图,有 3 个子图,都在 1 列中。

我目前控制每个子图的高度:

gridspec.GridSpec(3, 1, height_ratios=[1, 3, 3])

我没有间距:

plt.subplots_adjust(hspace=0.0)

但我只想在第 2 行和第 3 行之间留一些间距。

在其他答案之一中,我读到我可以做类似的事情:

gs1.update(left=0.05, right=0.48, wspace=0)

但是我真的不明白发生了什么。有人可以给我更多信息吗?

最佳答案

当您调用更新时,您会将这些参数应用于该特定网格规范中的所有子图。如果你想对不同的子图使用不同的参数,你可以制作多个 gridspecs。但是,您需要确保它们的尺寸正确且不重叠。一种方法是使用嵌套的网格规范。由于底部两个图的总高度是顶部的 6 倍,因此外部 gridspec 的高度比为 [1, 6]。

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec


def do_stuff(cell): #just so the plots show up
ax = plt.subplot(cell)
ax.plot()
ax.get_xaxis().set_visible(False)
ax.get_yaxis().set_visible(False)
plt.subplots_adjust(hspace=0.0)
#make outer gridspec
outer = gridspec.GridSpec(2, 1, height_ratios = [1, 6])
#make nested gridspecs
gs1 = gridspec.GridSpecFromSubplotSpec(1, 1, subplot_spec = outer[0])
gs2 = gridspec.GridSpecFromSubplotSpec(2, 1, subplot_spec = outer[1], hspace = .05)
for cell in gs1:
do_stuff(cell)
for cell in gs2:
do_stuff(cell)
plt.show()

Plot with three subplots

关于python - 一些子图之间的间距,但不是全部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31484273/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com