Python matplotlib绘图/图形从起点部分刷新

Python matplotlib绘图/图形从起点部分刷新,python,matplotlib,plot,Python,Matplotlib,Plot,抱歉,我对python和matplotlib有点陌生,所以我不知道我问的是否正确。到目前为止,我正在绘制图形,其中我收集了一个通过串行端口来的整数数组,并立即刷新整个绘图区域。现在我想做部分刷新(idk,如果它是正确的话)类似于PPG/ECG跟踪,一旦线/跟踪到达绘图区域的末尾,它就从开始开始,就像这里的示例中一样 [1]: . 我知道,如果我继续添加串行端口数据,并在数据到达后立即绘制,将继续向前扩展绘图,但我不知道如何在开始点返回,并像ECG中那样逐渐重新绘制 请在这方面给予帮助 谢谢下面我

抱歉,我对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动画可以。您好,谢谢您的帮助。您的示例帮助很大,但当轨迹到达绘图区域的右侧极限时,它也会清除绘图,这是不可取的,而链接中的演示会清除并更新与横坐标对应的纵坐标。我不知道我的解释是否正确。请在链接中播放演示。我们强烈鼓励您根据我提供的代码做得更好,而不仅仅是要求一个完整的解决方案,这不是工作原理。如果你不认为这是一个解决方案,那么不接受它是完全可以的。对不起,我本来打算接受它,但在等待更多的帮助;)