从列表中获取条形图 matplotlib 的项目
Getting items from lists for bar chart matplotlib
希望有人可以帮助访问列表中的个别项目。
我正在尝试创建一个简单的条形图,计算来自 csv 文件的用户输入列的频率。
很好,我可以很好地显示条形图,但我似乎无法理解如何沿 x 轴排列数据 ascending/descending。我有代码:
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)]
因为我无法对字典进行排序 "counted"。
所以我的计划是将所有状态指示符 "CO" "CT" "DC" 等放在一个列表中,将所有数值放在另一个列表中。
从那时起,我可以将这两个列表绘制在图表上,并且应该按州名字母顺序排列。
可能有更简单的方法来做到这一点,如果这样做对 hear.Thanks 真的很好。
好的,让它按照我想要的方式工作。
这是一个需要拆分的元组列表,不知道 zip 命令。所以现在我有两个单独的列表,但是相关的数据位置。
希望有人可以帮助访问列表中的个别项目。
我正在尝试创建一个简单的条形图,计算来自 csv 文件的用户输入列的频率。
很好,我可以很好地显示条形图,但我似乎无法理解如何沿 x 轴排列数据 ascending/descending。我有代码:
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)]
因为我无法对字典进行排序 "counted"。
所以我的计划是将所有状态指示符 "CO" "CT" "DC" 等放在一个列表中,将所有数值放在另一个列表中。 从那时起,我可以将这两个列表绘制在图表上,并且应该按州名字母顺序排列。
可能有更简单的方法来做到这一点,如果这样做对 hear.Thanks 真的很好。
好的,让它按照我想要的方式工作。
这是一个需要拆分的元组列表,不知道 zip 命令。所以现在我有两个单独的列表,但是相关的数据位置。