Python matplotlib绘图/图形从起点部分刷新
抱歉,我对python和matplotlib有点陌生,所以我不知道我问的是否正确。到目前为止,我正在绘制图形,其中我收集了一个通过串行端口来的整数数组,并立即刷新整个绘图区域。现在我想做部分刷新(idk,如果它是正确的话)类似于PPG/ECG跟踪,一旦线/跟踪到达绘图区域的末尾,它就从开始开始,就像这里的示例中一样 [1]: . 我知道,如果我继续添加串行端口数据,并在数据到达后立即绘制,将继续向前扩展绘图,但我不知道如何在开始点返回,并像ECG中那样逐渐重新绘制 请在这方面给予帮助Python matplotlib绘图/图形从起点部分刷新,python,matplotlib,plot,Python,Matplotlib,Plot,抱歉,我对python和matplotlib有点陌生,所以我不知道我问的是否正确。到目前为止,我正在绘制图形,其中我收集了一个通过串行端口来的整数数组,并立即刷新整个绘图区域。现在我想做部分刷新(idk,如果它是正确的话)类似于PPG/ECG跟踪,一旦线/跟踪到达绘图区域的末尾,它就从开始开始,就像这里的示例中一样 [1]: . 我知道,如果我继续添加串行端口数据,并在数据到达后立即绘制,将继续向前扩展绘图,但我不知道如何在开始点返回,并像ECG中那样逐渐重新绘制 请在这方面给予帮助 谢谢下面我
谢谢下面我有一个使用
FuncAnimation
的解决方案
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
from scipy.misc import electrocardiogram
ecg = electrocardiogram()[0:1000]
fig, ax = plt.subplots()
xdata, ydata = [], []
ln, = plt.plot([], [], '-')
# this is repeat length
n = 200
def init():
ax.set_xlim(0, n)
ax.set_ylim(-1, 2)
return ln,
def update(i):
# update xlim of axes
if i % n == 0:
ln.axes.set_xlim(int(i/n)*n, int(i/n)*n+n)
else:
xdata.append(i)
ydata.append(ecg[i])
ln.set_data(xdata, ydata)
return ln,
ani = FuncAnimation(fig, update, frames=1000, init_func=init, blit=True, interval=10, repeat=False)
请提供MCVE和玩具示例数据,我认为matplotlib动画可以。您好,谢谢您的帮助。您的示例帮助很大,但当轨迹到达绘图区域的右侧极限时,它也会清除绘图,这是不可取的,而链接中的演示会清除并更新与横坐标对应的纵坐标。我不知道我的解释是否正确。请在链接中播放演示。我们强烈鼓励您根据我提供的代码做得更好,而不仅仅是要求一个完整的解决方案,这不是工作原理。如果你不认为这是一个解决方案,那么不接受它是完全可以的。对不起,我本来打算接受它,但在等待更多的帮助;)