我有以下格式的一些csv数据。
Ln Dr Tag Lab 0:01 0:02 0:03 0:04 0:05 0:06 0:07 0:08 0:09
L0 St vT 4R 0 0 0 0 0 0 0 0 0
L2 Tx st 4R 8 8 8 8 8 8 8 8 8
L2 Tx ss 4R 1 1 9 6 1 0 0 6 7
我想使用列(Ln
,Dr
,Tg
,Lab
)作为键和0:0n
字段来绘制时间序列图表时间序列图上的值。
我有以下代码。
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
plt.ylabel('time')
plt.xlabel('events')
plt.grid(True)
plt.xlim((0,150))
plt.ylim((0,200))
a=pd.read_csv('yourfile.txt',delim_whitespace=True)
for x in a.iterrows():
x[1][4:].plot(label=str(x[1][0])+str(x[1][1])+str(x[1][2])+str(x[1][3]))
plt.legend()
fig.savefig('test.pdf')
我这里只展示了我的数据子集。我的完整数据集中有大约200个条目(200行)。上面的代码将所有图形绘制在一个图中。我希望每一行都在一个单独的图中绘制。
答案 0 :(得分:1)
使用subplot()
import matplotlib.pyplot as plt
fig = plt.figure()
plt.subplot(221) # 2 rows, 2 columns, plot 1
plt.plot([1,2,3])
plt.subplot(222) # 2 rows, 2 columns, plot 2
plt.plot([3,1,3])
plt.subplot(223) # 2 rows, 2 columns, plot 3
plt.plot([3,2,1])
plt.subplot(224) # 2 rows, 2 columns, plot 4
plt.plot([1,3,1])
plt.show()
fig.savefig('test.pdf')
http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.subplot