我创建了一个csv文件(带有pandas和朋友的帮助),就像图片中那样。
现在我需要绘制这个文件。 第一列是时间,应该用于x数据。其余的是数据。
对于图例,我只想要第一行用于标签,例如第二列的“T_HS_Netz_03”。
无法弄清楚如何做到这一点。
我的第一次尝试:
csv_data = pd.read_csv('file', header=[0, 1], delimiter=';')
ax = csv_data.plot(legend=True)
plt.legend(bbox_to_anchor=(0., 1.0, 1.0, 0.), loc=3, ncol=2, mode="expand")
plt.show()
但这也包括标签中的第二行,x刻度与数据不匹配(0.9 - 3.2)。
第二次尝试:
csv_data = pd.read_csv('file', header=[0, 1], delimiter=';')
x =csv_data.iloc[1:, [0]]
y = csv_data.iloc[1:, 1:]
plt.legend()
plt.plot(x, y)
这不会显示任何标签
结果图应该是
由于
答案 0 :(得分:0)
您必须使用示例中的numpy打开您的cvs文件。然后,您可以绘制列:
import numpy as np
import matplotlib.pyplot as plt
data = np.genfromtxt("file", delimiter="", dtype=[("time", "f4"), ("column1", "f8"), ("column2", "f8")])
figure_1 = plt.plot(data['time'], data['column1'])
figure_2 = plt.plot(data['time'], data['column2'])
plt.legend(loc='upper right')
plt.xlabel('data')
plt.ylabel('time')
plt.show()
你应该得到好结果;)