我有一个三维散点图,需要更新。但是,没有变量,让我解决单个数据点。
self.fig = plt.figure(figsize=(8, 8))
self.ax = self.fig.add_subplot(111, projection='3d')
data_point = self.ax.scatter(xs=0, ys=0, zs=0)
我想改变x,y,z坐标,但只使用set_3d_properties(1,[0])
改变了z坐标。其他属性,如颜色,可以很容易地改变。
这个程序应该是一个动态模拟。
我试着搜索setter函数来处理这些坐标set_offsets, set_data
,但是only promising one (an attribute) _offsets3d
给了我一个以IndexError: invalid index to scalar variable.
结尾的非常长的错误消息
要重现的代码:
import matplotlib
matplotlib.use("TkAgg")
import matplotlib.pyplot as plt
plt.ion()
fig = plt.figure(figsize=(8, 8))
ax = fig.add_subplot(111, projection='3d')
size = 6
ax.set_xlim(-(size / 2), size / 2)
ax.set_ylim(-(size / 2), size / 2)
ax.set_zlim(-(size / 2), size / 2)
datapoint = ax.scatter(0,0,0)
datapoint.set_data([1,1]) # supposed to work, doesn't work
datapoint.set_3d_properties(0,[5]) # works, changes the z coordinate
plt.show()
1条答案
按热度按时间iqjalb3h1#
不完全是答案,但我希望这能帮助OP
1.创建散点图
1.研究(私有)
._offsets3d
属性1.查看其内容
我已经检查过,例如,
sp._offsets3d[0][] = 9
可用于更改偏移,而不会引发任何错误。我不知道坐标更新后如何触发散点云的重新绘制。