如何在Matplotlib中使用时间序列绘制单个行值

时间:2019-06-06 13:22:24

标签: python pandas matplotlib

在列1(Data_1)中有6行,我试图用时间绘制每个行,我想在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循环时间:对于(0,10000)中的每一行都使用x进行时间绘制。

1 个答案:

答案 0 :(得分:0)

不依赖熊猫plot函数可以提高性能,但是根据您的数据,这可能会起作用:

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