gpt4 book ai didi

python - Matplotlib 艺术家在放大时保持相同大小?

转载 作者:太空宇宙 更新时间:2023-11-03 11:10:25 26 4
gpt4 key购买 nike

我正在使用 matplotlib 在图表上绘制一些艺术家(特别是几个矩形)。我想以某种方式固定这些,以便无论使用什么缩放级别,它们都保持相同的大小。我使用谷歌进行搜索,并且阅读了大部分艺术家文档,但没有找到锚定矩形大小所需的功能。

我希望得到详细说明如何执行此功能的答案,但如果您能让我大致知道如何执行此操作,或者甚至给我一些关键字以使我的 google 搜索更有效,我将非常感激:)

谢谢!

最佳答案

只需将 transform=ax.transAxes 关键字应用于 PolygonRectangle 实例。如果将补丁锚定到图形而不是轴更有意义,您也可以使用 transFigureHere is the tutorial on transforms .

下面是一些示例代码:

from matplotlib import pyplot as plt
from matplotlib.patches import Polygon
import numpy as np
x = np.linspace(0,5,100)
y = np.sin(x)

plt.plot(x,y)
ax = plt.gca()

polygon = Polygon([[.1,.1],[.3,.2],[.2,.3]], True, transform=ax.transAxes)
ax.add_patch(polygon)

plt.show()

如果您不想使用轴坐标系放置多边形,而是希望使用数据坐标系定位多边形,那么您可以使用转换在定位前静态转换数据。最好的例子在这里:

from matplotlib import pyplot as plt
from matplotlib.patches import Polygon
import numpy as np

x = np.linspace(0,5,100)
y = np.sin(x)

plt.plot(x,y)
ax = plt.gca()

dta_pts = [[.5,-.75],[1.5,-.6],[1,-.4]]

# coordinates converters:
#ax_to_display = ax.transAxes.transform
display_to_ax = ax.transAxes.inverted().transform
data_to_display = ax.transData.transform
#display_to_data = ax.transData.inverted().transform

ax_pts = display_to_ax(data_to_display(dta_pts))

# this triangle will move with the plot
ax.add_patch(Polygon(dta_pts, True))
# this triangle will stay put relative to the axes bounds
ax.add_patch(Polygon(ax_pts, True, transform=ax.transAxes))

plt.show()

关于python - Matplotlib 艺术家在放大时保持相同大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5678950/

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