【发布时间】:2014-05-12 12:11:23
【问题描述】:
我正在 Python 3.3 中使用 matplotlib。我有一个动画 2d 和 3d 窗口,我在其上绘制点。这些点代表物体,但不确定它们是否真的存在。所以我想在这些点周围画一个圆圈来显示不确定性。这种不确定性是变化的,所以底线是:我想在一个中心和半径可变的 2D 动画中绘制多个(可能是 0,可能是 100)圆。
我试过分散。 Scatter 看起来很有希望,直到我调整屏幕大小:scatter 的大小以像素为单位,与轴的大小无关。知道我该怎么做吗?
我尝试了以下分散代码:
#In the init
self.circles = self.ax.scatter([],[],[],c = 'b',alpha=0.6)
#In the animate function
self.circles.set_offsets([[10],[15]])
self.circles._sizes = [2000]
中心点是正确的,在 x = 10 和 y = 15。但大小是以像素为单位的大小,与轴无关。例如,在这种情况下,我希望圆圈达到 x = 10 和 y = 20015。但事实并非如此。
当我调整窗口大小时,这会成为一个问题。
【问题讨论】:
-
你的意思是大小以像素为单位?圈子大小?你能出示你的代码吗?
-
在文本中添加了一些代码。
-
这是分散的“特征”。看看 scatter 在下面是如何工作的,它只是路径对象的集合。我会对
Circle补丁对象做同样的事情,你可以在数据单元中调整大小。 -
我可以像使用散点图和线条一样使用圆吗?
-
见matplotlib.org/api/artist_api.html#matplotlib.patches.Circle +
ax.add_*+ 集合对象。
标签: python python-3.x matplotlib