我正在尝试创建一个大型文本文件的条形图,如下所示,存储在csv文件中:
#DowntonPBS, 23
#DowntonAbbey, 12
#Download, 8
#Download:, 2
#Downloads, 2
#DownstairsMixtape, 1
#DownWithAssad, 1
#DownYoTLParty, 1
#DowntonAbbey?, 1
#Downtonabbey, 1
#DowntownAbbey, 1
以下代码是我所处的位置,虽然这种方法过去曾用于不同的绘图脚本,但我在这里做错了,我似乎无法找到。而不是绘制所有数据,我似乎只获得了三个记录。
import pylab as p
import sys
from matplotlib.mlab import csv2rec
y = []
fig = p.figure()
ax = fig.add_subplot(1,1,1)
input = open(sys.argv[1], 'r')
data = csv2rec(input, names=['tag', 'count'])
for item in data['count']:
y.append(item)
N = len(y)
ind = range(N)
ax.bar(ind, y, align='center')
ax.set_ylabel('Counts')
ax.set_title('HashTag Diversity')
ax.set_xticks(ind)
group_labels = data['tag']
ax.set_xticklabels(group_labels)
fig.autofmt_xdate()
p.show()
如果我为y和N添加print语句,并针对我的大数据集运行脚本,我最终得到:
[45, 37, 36]
3
这些值应该是一个非常大的数组“1000”值,而lenth(N)应该是1000.我不确定这里发生了什么。
答案 0 :(得分:1)
csv2rec()
默认情况下会忽略以“#”开头的行,您可以通过以下方式更改:
csv2rec(input, names=['tag', 'count'], comments="something")