绘图csv - 定义图例标签

时间:2016-07-04 07:12:29

标签: python pandas matplotlib

我创建了一个csv文件(带有pandas和朋友的帮助),就像图片中那样。

enter image description here

现在我需要绘制这个文件。 第一列是时间,应该用于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)

这不会显示任何标签

结果图应该是

enter image description here

由于

1 个答案:

答案 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()

你应该得到好结果;)

enter image description here