gpt4 book ai didi

python - 如何在每次迭代时更新 matplotlib pyplot

转载 作者:太空宇宙 更新时间:2023-11-03 14:34:46 24 4
gpt4 key购买 nike

我正在使用 rospy 来获取机器人位置的数据并实时绘制它。

这就是我所拥有的:

 self.plot_pose()

def plot_pose(self):
plt.plot(self.pose[0], self.pose[1], 'o', color='green')
plt.plot([self.pose[0], self.pose[0] - 0.5*np.cos(self.pose[2])],
[self.pose[1], self.pose[1] + 0.5*np.sin(self.pose[2])],
'k-', color='red', lw=2)

plt.show(block=False)
plt.pause(0.0001)

不幸的是,这并没有删除情节而是覆盖了所有内容。所以我尝试使用

plt.clf()
plt.cla()

第一个给了我弃用错误,第二个由于某种原因给了我一个空白图。我正在使用 python2.7 和 rospy 库。

任何有关如何更新情节的建议将不胜感激。

最佳答案

这与通常的动画相同。尽量避免每次交互都创建新的绘图,而是更新旧的绘图。

self.point, = plt.plot([],[], 'o', color='green')
self.line, = plt.plot([],[], ls="-", color='red', lw=2)
plt.show(block=False)
self.plot_pose()

def plot_pose(self):
self.point.set_data(self.pose[0], self.pose[1])
self.line.set_data([self.pose[0], self.pose[0] - 0.5*np.cos(self.pose[2])],
[self.pose[1], self.pose[1] + 0.5*np.sin(self.pose[2])])

plt.pause(0.0001)

如果点位于绘图之外,您可能需要调整绘图的限制(plt.xlim()plt.ylim())。

关于python - 如何在每次迭代时更新 matplotlib pyplot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47040324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com