我们有一个文本文件数据如下:
正面:20
否定:10
中立:30
正面,负面,中性是标签,20,10,30是计数。我的要求是绘制上述数据的条形图。 X轴应为标签,Y轴应为计数。 所以你能告诉我如何在python中使用matplotlib做到这一点。
我已尝试过此代码,但收到了一些错误
f=open('/var/www/html/form/tweetcount.txt','r')
line = (f.next() for i in range(4))
pieces = (lin.split(':') for lin in line)
labels,values = zip(*pieces)
N=len(values)
ind = arange(N)
plt.bar(ind,labels)
答案 0 :(得分:1)
我认为你的问题是你试图绘制错误的值。
此代码应该按您的要求执行:
import matplotlib.pyplot as plt
import numpy as np
# Collect the data from the file, ignore empty lines
with open('data.txt') as f:
lines = [line.strip().split(': ') for line in f if len(line) > 1]
labels, y = zip(*lines)
# Generate indexes
ind = np.arange(len(labels))
# Convert the y values from str to int
y = map(int, y)
plt.figure()
plt.bar(ind, y, align='center')
plt.xticks(ind, labels)
plt.show()
您可以看到最终结果here。