Hea*_*rab 43 python matplotlib
假设我们有一个多边形坐标为polygon = [(x1,y1),(x2,y2),...],下面的代码显示了多边形:
import matplotlib.pyplot as plt
plt.fill(*zip(*polygon))
plt.show()
Run Code Online (Sandbox Code Playgroud)
默认情况下,它会尝试调整宽高比,以便多边形(或任何其他图表)适合窗口内部,并自动更改它,以便即使在调整大小后也适合.在许多情况下这是很好的,除非你试图在视觉上估计图像是否扭曲.如何将纵横比严格控制为1:1?
(不确定"宽高比"在这里是否是正确的术语,所以如果不是 - 我需要X和Y轴都具有1:1比例,因此X和Y上的(0,1)都需要精确相同数量的屏幕空间.无论我如何调整窗口大小,我都需要保持1:1的比例.)
Oli*_*ier 79
它有用吗:
plt.axis('equal')
Run Code Online (Sandbox Code Playgroud)
小智 18
我确信,有一种方法可以直接将其设置为绘图命令的一部分,但我不记得这个技巧了.为此之后,您可以使用当前轴并将其宽高比设置为"set_aspect('equal')".在你的例子中:
import matplotlib.pyplot as plt
plt.fill(*zip(*polygon))
plt.axes().set_aspect('equal', 'datalim')
plt.show()
Run Code Online (Sandbox Code Playgroud)
我一直使用它,它来自matplotlib网站上的示例.
G M*_*G M 12
最好的用途是:
plt.axis('scaled')
Run Code Online (Sandbox Code Playgroud)
正如Saullo Castro所说.因为相同而你不能改变一个轴限制而不改变另一个,所以如果你想要适合所有非平方数字,你将有很多空白区域.
或者,您可以使用轴类.
fig = plt.figure()
ax = figure.add_subplot(111)
ax.imshow(image)
ax.axes.set_aspect('equal')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39719 次 |
| 最近记录: |