gpt4 book ai didi

python - matplotlib plt.Rectangle 的奇怪行为

转载 作者:太空狗 更新时间:2023-10-30 01:36:15 25 4
gpt4 key购买 nike

我正在尝试制作“matplotlib 蛋糕”。 ;)

我有以下代码:它应该打印一个蓝色和一个红色矩形,由绿色“涂层”分开。

import matplotlib.pyplot as plt

def save_fig(layer):
# Hide the right and top spines
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
# Sacale axis
plt.axis('scaled')
fig.savefig(layer+'.pdf', dpi=fig.dpi)
fig.savefig(layer+'.jpeg', dpi=fig.dpi)

gap =10
fig, ax = plt.subplots()
rectangle_gap = plt.Rectangle((0-gap, 0), 500+2*gap, 100+gap, color ="green");
plt.gca().add_patch(rectangle_gap);
rectangle = plt.Rectangle((0, 0), 500, 100, color = "red");

plt.gca().add_patch(rectangle)
rectangle = plt.Rectangle((0, 100+gap), 500, 100, color = "blue");
plt.gca().add_patch(rectangle);


save_fig("test")

结果如下: enter image description here

如您所见,输出正是我所期望的。伟大的 !但是,我使用了参数...

如果我把顶部蓝色矩形的宽度做得很长,它会以某种方式进入绿色分隔涂层...

这是更改后的代码(唯一改变的是顶部矩形的宽度,从 500 到 5000):

gap =10
fig, ax = plt.subplots()
rectangle_gap = plt.Rectangle((0-gap, 0), 500+2*gap, 100+gap, color ="green");
plt.gca().add_patch(rectangle_gap);
rectangle = plt.Rectangle((0, 0), 500, 100, color = "red");

plt.gca().add_patch(rectangle)
rectangle = plt.Rectangle((0, 100+gap), 5000, 100, color = "blue");
plt.gca().add_patch(rectangle);

现在输出看起来像这样:

enter image description here

如果我打开 pdf 输出并放大,您就会明白我的意思:

enter image description here

这是为什么,我该如何解决?

编辑:正如@Bazingaa 所建议的,我尝试了:

1000:

enter image description here

1000 -> 缩放:

enter image description here

2000:

enter image description here

2000 -> 缩放:

enter image description here

3000:

enter image description here

3000 -> 缩放:

enter image description here

和...

10000

enter image description here

10000 -> 缩放:

enter image description here

最佳答案

回答:我在 github 上被告知要执行以下操作:

Set the linewidth property of all your Rectangles to 0 (linewidth=0).

这解决了问题! :)

原因:

The line is 1 pt wide and 0.5 pt overlaps your rectangle edge. You were making plots so small this was visible.

关于python - matplotlib plt.Rectangle 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52518140/

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