全部,我有多个数据框,例如
df1 = pd.DataFrame(np.array([
['a', 1, 2],
['b', 3, 4],
['c', 5, 6]]),
columns=['name', 'attr1', 'attr2'])
df2 = pd.DataFrame(np.array([
['a', 2, 3],
['b', 4, 5],
['c', 6, 7]]),
columns=['name', 'attr1', 'attr2'])
df3 = pd.DataFrame(np.array([
['a', 3, 4],
['b', 5, 6],
['c', 7, 8]]),
columns=['name', 'attr1', 'attr2'])
每个数据帧都是在特定的时间步长生成的,即T = [t1,t2,t3]
我想绘制diff数据帧的attr1或attr2作为时间T的函数。我想对所有相同图形上的'a','b'和'c'进行绘制。 Plot Attr1 VS time for 'a', 'b' and 'c'
答案 0 :(得分:0)
如果我的理解正确,请首先为您的每个数据框分配一列T
,然后将这三个数据框串联起来。然后,您可以groupby
name
列,遍历每列,并针对T
或attr1
绘制attr2
:
dfs = pd.concat([df1.assign(T=1), df2.assign(T=2), df3.assign(T=3)])
for name, data in dfs.groupby('name'):
plt.plot(data['T'], data['attr2'], label=name)
plt.xlabel('Time')
plt.ylabel('attr2')
plt.legend()
plt.show()