python - 更新 pyplot.scatter 的位置和颜色

标签 python matplotlib plot scatter-plot scatter

我已经为此苦苦挣扎了一段时间,但无法让它发挥作用。我正在读取一个文件 block 并从中散点图数据,我想通过在 for 循环中更新每个 block 的散点图来“动画化”它(并使其适应实时数据流)。

所以像这个丑陋的例子这样的东西适用于单个情节:

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)

plot of above

但是如何在不重复调用 s.remove()scatter() 的情况下更新绘图?完全不直观的命名 s.set_arrays.set_offsets 应该更新颜色以及 x 和 y 位置,但我不知道如何使用它们使用我上面的 x、y、alpha 数据类型。

(此外,是否有更好的方法来处理上图中的 alpha?)

最佳答案

我为此找到的解决方案涉及使用 Normalize 根据相关数据制作标准化颜色列表,将其映射到 ScalarMappable,并使用它来设置动画每一帧的面部颜色和 c 限制。使用 scat 散点图的句柄和 speedList 提供颜色数据:

n = mpl.colors.Normalize(vmin = min(speedsList), vmax = max(speedsList))
m = mpl.cm.ScalarMappable(norm=n, cmap=mpl.cm.afmhot)
scat.set_facecolor(m.to_rgba(speedsList))
scat.set_clim(vmin=min(speedsList), vmax=max(speedsList))

这完全符合我的预期。

关于python - 更新 pyplot.scatter 的位置和颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23966121/

相关文章:

python - 在 pandas 中,如何绘制多个索引?

python - 如何使用matplotlib将节点数一一相加然后显示

python - 关于模拟中心极限定理的问题来自 Book Data Science from Scratch

python - 如何更好地拟合seaborn fiddle 情节?

Matlab 未绘制精确的傅里叶信号

python - 为什么 Tkinter 在绘图时会删除之前的矩形?

python - 如果我已经从前一个 block 中的函数返回,我应该使用 elif 吗?

python - 在 Django 项目中安装 Misaka 时出现问题

python - 如何使用 GDAL 更改栅格的地理变换?

plot - QWT zoomer plus panner 连续重绘