gpt4 book ai didi

python - 使用 matplotlib/pyplot 绘制某些内容并仅保存绘图(居中、具有相等的纵横比且没有轴或边框)

转载 作者:行者123 更新时间:2023-12-01 02:22:16 26 4
gpt4 key购买 nike

我只想将生成的绘图图像保存到文件中并编写以下 MCVE:

import matplotlib.pyplot as plt

plt.rcParams["axes.facecolor"] = "red"
plt.rcParams["savefig.facecolor"] = "red"
plt.rcParams["savefig.bbox"] = "tight"
plt.rcParams["savefig.pad_inches"] = 0

plt.plot([0, 1], [0, 0], "b-", linewidth="10")
plt.plot([1, 1], [0, 1], "b-", linewidth="10")
plt.plot([1, 0], [1, 1], "b-", linewidth="10")
plt.plot([0, 0], [1, 0], "b-", linewidth="10")

#plt.axis("equal")
#plt.axis("off")
plt.savefig("test.png")

1

<小时/>
plt.axis("equal")
#plt.axis("off")

3

<小时/>
#plt.axis("equal")
plt.axis("off")

2

<小时/>
plt.axis("equal")
plt.axis("off")

4

<小时/>

我发现了bboxpad_inches。然而,它仍然不完美。轴似乎是隐藏的,而不是完全关闭 - 所以情节不会居中。另外,我想我什至需要轴设置相等的比例,否则矩形将不是正方形?

我想要的是

5

6

最佳答案

plt.rcParams["savefig.bbox"] = "tight" 自动调整图形周围的填充。这在这里似乎是不受欢迎的。忽略它并创建一个没有边距的正方形图 (plt.subplots_adjust(0,0,1,1)) 将允许轴占据图中的所有空间。这样就不再需要专门设置方面,但当然对于不同的情况可能仍然有意义。

import matplotlib.pyplot as plt

plt.rcParams["axes.facecolor"] = "red"
plt.rcParams["savefig.facecolor"] = "red"

plt.figure(figsize=(4,4))
plt.subplots_adjust(0,0,1,1)
plt.plot([0, 1, 1, 0,0], [0, 0,1,1,0], "b-", linewidth="10", solid_joinstyle="miter")

#plt.gca().set_aspect("equal",adjustable="box" ) # <- not needed
plt.axis("off")
plt.savefig("test.png")
plt.show()

enter image description here

要获得没有红色边框的图形,可以将数据边距设置为0%(plt.margins(0));但是,由于线条被切了一半,因此将其线宽加倍以获得相同的蓝色边框是有意义的。

import matplotlib.pyplot as plt

plt.rcParams["axes.facecolor"] = "red"
plt.rcParams["savefig.facecolor"] = "red"

plt.figure(figsize=(4,4))
plt.subplots_adjust(0,0,1,1)
plt.plot([0, 1, 1, 0,0], [0, 0,1,1,0], "b-", linewidth=20, solid_joinstyle="miter")

#plt.gca().set_aspect("equal",adjustable="box" ) # <- not needed
plt.axis("off")
plt.margins(0.0)
plt.savefig("test.png")
plt.show()

enter image description here

关于python - 使用 matplotlib/pyplot 绘制某些内容并仅保存绘图(居中、具有相等的纵横比且没有轴或边框),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47851069/

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