【发布时间】:2014-10-25 00:40:58
【问题描述】:
我已经为此苦苦挣扎了一段时间,但无法让它发挥作用。我正在读取块中的文件并从中散点绘图数据,我想通过在for 循环中更新每个块的散点图来“动画化”它(并将其调整为实时数据流)。
所以像这个丑陋的例子适用于一个单一的情节:
x = [1, 2, 3, 4]
y = [4, 3, 2, 1]
alpha = [0.2, 0.3, 0.8, 1.0]
c = np.asarray([(0, 0, 1, a) for a in alpha])
s = scatter(x, y, marker='o', color=c, edgecolors=c)
但是如何在不重复调用s.remove() 和scatter() 的情况下更新情节?完全不直观命名的 s.set_array 和 s.set_offsets 应该更新颜色以及 x 和 y 位置,但我无法弄清楚如何将它们与上面的 x、y、alpha 数据类型一起使用。
(另外,有没有更好的方法来做上图中的 alpha?)
【问题讨论】:
-
@endolith:这里有一个关于实时更新图表的问题:stackoverflow.com/questions/13181118/… 也许这会有所帮助?
-
set_array在您使用颜色图确定标记颜色时起作用,而不是在您手动设置颜色时起作用。这些函数所做的另一个假设是制造商的数量不会改变 (iirc)。 -
@tcaswell:颜色是从数据中生成的,而不是手动生成的,因此具有不同 alpha 的颜色图可以工作。你能写一个如何使用自定义颜色图和更新散点颜色的例子吗?标记的数量不会改变。
-
@tcaswell:我有点让它工作,但边缘颜色不同。我究竟做错了什么? gist.github.com/endolith/f96d3939ffa5d79c81cc
标签: python matplotlib plot scatter-plot scatter