从条形图列表中获取项目matplotlib

时间:2015-12-02 18:02:54

标签: python list matplotlib visualization

希望有人可以帮助从列表中访问单个项目。

我正在尝试创建一个简单的条形图,从csv文件中计算用户输入列的频率。

这很好,我可以很好地显示条形图,但我似乎无法理解如何沿x轴排列/下降数据。我有代码:

import matplotlib.pyplot as pl
import numpy as np
import sys
import csv
from collections import Counter
import numpy as np
from operator import itemgetter

filename = sys.argv[1]

data = []

with open(filename) as f:
    reader = csv.reader(f)
    header = reader.next()
    header = [head.replace(" ", "_").lower() for head in header]
    data = [row for row in reader]

for field in header:
    print field

header_name = raw_input("Select field from above: ")
column_no = header.index(header_name)

empty = []

for datarow in data:
    empty.append(datarow[column_no])

counted = Counter(empty)
sorted_counted = sorted(counted.items(), key=itemgetter(0))

print sorted_counted 

这让我想到了一个排序的项目列表: [('AK',6),('AR',1),('AZ',9),('CA',72),('CO',8),('CT',5),( 'DC',1),('FL',28),('GA',7),('HI',4),('IA',1),('ID',4),('IL ',15),('IN',9),('KS',5),('KY',1),('LA',9),('MA',12),('MD', 17),('ME',3),('MI',14),('MN',7),('MO',4),('MS',4),('MT',1) ,('NC',8),('ND',1),('NE',2),('NH',1),('NJ',52),('NM',2),( 'NV',2),('NY',46),('OH',22),('OK',1),('OR',6),('PA',29),('RI ',5),('SC',3),('SD',1),('TN',10),('TX',32),('UT',1),('VA', 7),('WA',8),('WI',11),('WY',3)]

因为我无法对字典进行“计数”。

那么我的计划是把所有的州指示符“CO”“CT”“DC”等放在一个列表中,并将所有数值放在另一个列表中。 从那时起,我可以在图表上绘制两个列表,并且应该按字母顺序按州名排序。

可能有一种更简单的方法可以做到这一点,如果这样的话真的很好听。谢谢。

1 个答案:

答案 0 :(得分:0)

好吧,让它以我想要的方式工作。

这是一个需要拆分的元组列表,并且不知道zip命令。所以现在我有两个单独的列表,但相关的数据位置。