我的result.csv中有8列,需要在我的折线图中添加图例。我的代码是:
per_data=genfromtxt('result.csv',delimiter=',')
plt.plot(per_data)
plt.xlabel ('x stuff')
plt.ylabel ('y stuff')
plt.title('my test result')
plt.grid()
plt.show()
它给了我:
如何添加恰好是我的csv文件中的标题行的图例?
答案 0 :(得分:1)
如果您对names=True
使用np.genfromtxt
选项,则会在.csv
的第一行读取列名称。
例如:
import matplotlib.pyplot as plt
import numpy as np
# Make dummy csv file for this example
from io import StringIO
result_csv = StringIO(u"""
xstuff, data1, data2, data3
0, 1, 2, 3
1, 1, 3, 4
2, 2, 1, 3
3, 1, 2, 5
""")
# Read in csv. Use names=True to also store column headers
per_data=np.genfromtxt(result_csv,delimiter=',',names=True)
# Loop over columns. Here I assume you have the x-data in the first column, so skip that one
for name in per_data.dtype.names[1:]:
# Set the line's label to the column name
plt.plot(per_data['xstuff'],per_data[name],label=name)
# Add a legend
plt.legend(loc=0)
plt.xlabel ('x stuff')
plt.ylabel ('y stuff')
plt.title('my test result')
plt.grid()
plt.show()