Python Bar Plot pylab没有读取来自csv的所有数据

时间:2012-11-27 05:58:15

标签: python list csv matplotlib

我正在尝试创建一个大型文本文件的条形图,如下所示,存储在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.我不确定这里发生了什么。

1 个答案:

答案 0 :(得分:1)

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

csv2rec(input, names=['tag', 'count'], comments="something")