Nic*_*ick 3 python csv matplotlib pandas
我有一个 csv 文件,其中包含两列,其中第一列是水果名称,第二列是计数,我需要使用此 csv 作为以下代码的输入绘制直方图。我如何使它成为可能。我只需要显示前 20 个条目,其中水果名称将是 x 轴,计数将是整个 100 行 csv 文件中的 y 轴。
import matplotlib.pyplot as plt
import pandas as pd
data = pd.read_csv('data.csv', header = None ,quoting=2)
data.hist(bins=10)
plt.xlim([0,100])
plt.ylim([50,500])
plt.title("Data")
plt.xlabel("fruits")
plt.ylabel("Frequency")
plt.show()
Run Code Online (Sandbox Code Playgroud)
我编辑了上面的程序来绘制条形图 -
import matplotlib.pyplot as plt
import pandas as pd
data = pd.read_csv('data.csv', sep=',',header=None)
data.values
print data
plt.bar(data[:,0], data[:,1], color='g')
plt.ylabel('Frequency')
plt.xlabel('Words')
plt.title('Title')
plt.show()
Run Code Online (Sandbox Code Playgroud)
但这给了我一个错误“Unhashable Type”。任何人都可以帮助解决这个问题。
您可以使用 的内置图pandas
,尽管您需要指定第一列是索引,
import matplotlib.pyplot as plt
import pandas as pd
data = pd.read_csv('data.csv', sep=',',header=None, index_col =0)
data.plot(kind='bar')
plt.ylabel('Frequency')
plt.xlabel('Words')
plt.title('Title')
plt.show()
Run Code Online (Sandbox Code Playgroud)
如果您需要使用matplotlib
,使用将数组转换为字典data.to_dict()
并将数据提取到 numpy 数组或其他东西可能会更容易。