循环更新pyplot 3d散点图,网格线重叠点

NLi10Me

我正在循环的每次迭代中更新3d散点图。重绘绘图时,网格线会“遍历”或“覆盖”这些点,这使我的数据更难以可视化。如果我构建一个3d图(无循环更新),则不会发生。下面的代码演示了最简单的情况:

import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import time

X = np.random.rand(100, 3)*10
Y = np.random.rand(100, 3)*5

plt.ion()

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(X[:, 0], X[:, 1], X[:, 2])
plt.draw()

for i in range(0, 20):
    time.sleep(3)   #make changes more apparent/easy to see

    Y = np.random.rand(100, 3)*5
    ax.cla()    
    ax.scatter(Y[:, 0], Y[:, 1], Y[:, 2])
    plt.draw()

还有其他人遇到过这个问题吗?

ab

它看起来像MaxNoe是正确的,即问题是在ax.cla()plt.cla()通话。实际上,这似乎是一个已知问题

然后出现一个问题,因为透明轴方法在3D绘图中不起作用,并且对于3D散点,没有干净的方法可以更改数据点的坐标(a la sc.set_data(new_values)),如本邮件列表中所述(我没有找不到最近的东西)。

但是,在邮件列表中,Ben Roon指出了一种可能对您也有用的解决方法。

解决方法:

您需要函数返回_ofsets3dLine3DCollection对象的内部变量中设置数据点的新坐标scatter

您改编的示例如下所示:

import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import time

X = np.random.rand(100, 3)*10
Y = np.random.rand(100, 3)*5

plt.ion()

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
sc = ax.scatter(X[:, 0], X[:, 1], X[:, 2])
fig.show()

for i in range(0, 20):
    plt.pause(1)

    Y = np.random.rand(100, 3)*5

    sc._offsets3d = (Y[:,0], Y[:,1], Y[:,2])
    plt.draw()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

循环更新pyplot 3d散点图,网格线重叠点

来自分类Dev

带有 for 循环的网格线

来自分类Dev

在pyplot中绘制网格线和数据的顺序

来自分类Dev

如何更新网格线的线坐标?

来自分类Dev

d3-在指定位置绘制网格线

来自分类Dev

网格线未在D3直方图中显示

来自分类Dev

Python在3D散点图中用线连接相邻点

来自分类Dev

Matplotlib 3d散点动画-如何正确更新

来自分类Dev

在python中的点之间绘制网格线

来自分类Dev

Highchart 在 y 轴上显示每个点的网格线

来自分类Dev

PyPlot-设置绘图的网格线间距

来自分类Dev

3D时,Python for循环总是绘制同一条线(使用matplotlib)

来自分类Dev

D3.js:将鼠标移到网格线之间

来自分类Dev

D3网格线和刻度值问题

来自分类Dev

D3.js-使用主要和次要网格线

来自分类Dev

条形图的条形图之间的d3js网格线

来自分类Dev

使网格线为粗体,对应于scatterplot3d中的特定值

来自分类Dev

d3.js 4.0 —具有居中轴的线图的网格线

来自分类Dev

d3.js网格线悬在x轴上吗?

来自分类Dev

在 d3.js 的末尾切断网格线

来自分类Dev

Gnuplot 3d曲面图和重叠线?

来自分类Dev

3d网格中的转发(绘图)线

来自分类Dev

奇怪的网格线行为

来自分类Dev

网格线未显示

来自分类Dev

JFreeChart网格线颜色

来自分类Dev

奇怪的网格线行为

来自分类Dev

在while循环D3中更新参数

来自分类Dev

点重复时使用matlibplot.pyplot绘制散点图

来自分类Dev

如何清除pyplot散点图上的所有动态绘制的点?