如何使用matplotlib绘制时间序列中的单行值

2024-04-29 04:27:04 发布

您现在位置:Python中文网/ 问答频道 /正文

在第1列(数据1)中,有6行我正试图分别绘制每一行的w.r.t时间。我想在matplotlib中使用时间序列进行绘制。我不知道如何用时间序列来绘图。我不知道如何传递绘图的时间信息:

参考图

有人能告诉我如何正确地传递这些信息吗。你知道吗

如何使用Matplotlib在x轴上绘制时间,在y轴上绘制行?提前谢谢

 Time;    Data_1;
0.000000;  2389;-r1
0.002778;  2381;-r2
0.005556;  2372;-r3
0.008333;  2360;-r4
0.011111;  2355;-r5
0.013889;  2351;-r6

sys.__stdout__ = sys.stdout
fig = plt.figure()
ax = fig.add_subplot(1,1,1)

df = pd.read_csv('tst.txt', delimiter='\t')

for i,row in df.iterrows():
    for j, column in row.iteritems():
        x1 = j
        y1 =row[0]
        print(x1,y1)

df.plot(x="x1",y="y1",ax=ax)
plt.show()

我想在x轴上用for循环表示时间:对于x(010000)中的每一行,我想在y轴上一个接一个地绘制x时间图中所有单独的行(r1到r6)的值。你知道吗


Tags: 信息绘图dfforstdoutsys时间绘制
1条回答
网友
1楼 · 发布于 2024-04-29 04:27:04

性能可以通过不依赖pandasplot函数来提高,但根据您的数据,这可能会起作用:

df = pd.read_csv('tst.csv', delimiter=';')   
fig, ax = plt.subplots()  
def animate(i):
    plt.cla()
    df.iloc[:i+1,:].plot(x='Time', ax=ax)
    ax.set_xlim(df.Time.min(), df.Time.max()) # prevents pandas from changing xlimits if desired

ani = animation.FuncAnimation(fig, animate, frames=len(df.index), interval=100)
plt.show()

enter image description here

相关问题 更多 >