gpt4 book ai didi

python - matplotlib:删除轴之间的水平间隙?

转载 作者:行者123 更新时间:2023-12-01 04:44:42 29 4
gpt4 key购买 nike

我似乎无法让子图之间的水平间隙消失。有什么建议么?

代码:

plt.clf()
fig = plt.figure()
for i in range(6):
ax = fig.add_subplot(3,2,i)

frame_range = [[]]

ax.set_xlim(-100000, 1300000)
ax.set_ylim(8000000, 9100000)
ax.set_aspect(1)
ax.set_xticks([])
ax.set_yticks([])
ax.set_frame_on(False)

ax.add_patch(dt.PolygonPatch(provs[0],fc = 'None', ec = 'black'))


fig.tight_layout(pad=0, w_pad=0, h_pad=0)
plt.subplots_adjust( wspace=0, hspace=0)

plt.savefig(wd + 'example.png')

发布了此代码的示例,并保留了刻度线和框架。

Example

Example 2

最佳答案

您正在为图表设置两个并发规则。

一是轴方面

ax.set_aspect(i)

这将迫使绘图始终遵循 1:1 比例。

另一个是将h_spacew_space设置为零。在这种情况下,matplotlib 将尝试更改轴的大小以将空格减少到零。当您将纵横比设置为 1 时,每当边缘之一相互接触时,轴的大小将不再改变。这会产生使图表水平分开的间隙。

有两种方法可以迫使它们彼此靠近。

  • 您可以更改图形宽度以使它们彼此更接近。
  • 您可以设置左右边缘的间距,使它们彼此更靠近。

使用您提供的示例,我修改了几行来说明左右间距可以做什么。

fig = plt.figure()
for i in range(6):
ax = fig.add_subplot(3,2,i)
ax.plot(linspace(-1,1),sin(2*pi*linspace(-1,1)))
draw()
frame_range = [[]]

ax.set_aspect(1)
ax.set_xticks([])
ax.set_yticks([])
# ax.set_frame_on(False)
# ax.add_patch(dt.PolygonPatch(provs[0],fc = 'None', ec = 'black'))


fig.tight_layout(pad=0,w_pad=0, h_pad=0)
subplots_adjust(left=0.25,right=0.75,wspace=0, hspace=0)

结果应该如下图所示。重要的是要记住,如果您调整窗口大小,绘图将再次分开,具体取决于您是否将其设置得更高/更短或更宽/更窄。

希望有帮助 Grid distribution

关于python - matplotlib:删除轴之间的水平间隙?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29762095/

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