0

我正在尝试创建一个大文本数据文件的条形图,如下所示,存储在 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 添加打印语句,并针对我更大的数据集运行脚本,我最终会得到:

[45, 37, 36]
3

这些值应该是一个非常大的数组“1000”值,长度 (N) 应该 = 1000。我不确定这里发生了什么。

4

1 回答 1

1

csv2rec()默认情况下将忽略以“#”开头的行,您可以通过以下方式更改:

csv2rec(input, names=['tag', 'count'], comments="something")      
于 2012-11-27T07:31:06.067 回答