我有一个包含 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 = [row[0] for row in data]
此代码一一对应所有列。我实际上想要有一些方法,以便它可以绘制所有 19 列,将第一列作为 x 轴常数,并将它们绘制在单个窗口中。请提供任何帮助。
最佳答案
您可以尝试使用 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了解更多详情。
关于python - matplotlib 绘制所有列的 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17084851/