我有一个包含20列的csv文件。现在我可以使用这个代码绘制第一列为x轴,其余为y轴。
import numpy as np
import matplotlib.pyplot as plt
data = np.genfromtxt('cs.csv',delimiter=',', dtype = float)
a = [row[0] for row in data]
b = [row[1] for row in data]
c = [row[2] for row in data]
fig = plt.figure()
ax = fig.add_subplot(111, axisbg = 'w')
ax.plot(a,b,'g',lw=1.3)
ax.plot(a,c,'r',lw=1.3)
plt.show()
问题在这里我必须使用
定义所有列a = [数据行中的行[0]]
这个代码逐个列出所有列。我想要实际拥有一些方法,以便它可以绘制所有19列,将第一列作为x轴常数,并将它们绘制在一个窗口中。请帮忙。
答案 0 :(得分:3)
您可以尝试使用pandas,它使用matplotlib进行绘图。例如,如果你有这样的CSV:
a,b,c
20,2,5
40,6,8
60,4,9
您可以绘制列b
& c
喜欢这样:
import pandas as pd
df = pd.DataFrame.from_csv('test.csv', parse_dates=False)
df.b.plot(color='g',lw=1.3)
df.c.plot(color='r',lw=1.3)
第一列用作索引&默认为x轴。 有关详细信息,请参阅plotting documentation。
答案 1 :(得分:1)
这个怎么样:
[plt.plot(data[0],data[x]) for x in range(1,len(data[:,0]))]
答案 2 :(得分:0)