这是我的数据结构:
data = {'2013': {1:25,2:81,3:15}, '2014': {1:28, 2:65, 3:75}, '2015': {1:78,2:91,3:86 }}
我的x轴是数字[1,2,3]
我的y轴是每个数字的数量。例如:2013年,1
是x轴,而数量是25
。
打印每年的每张图表
我想绘制一个条形图,它使用带有图例的matplotlib。
答案 0 :(得分:2)
import matplotlib.pyplot as plt
import pandas as pd
data = {'2013': {1:25,2:81,3:15}, '2014': {1:28, 2:65, 3:75}, '2015': {1:78,2:91,3:86 }}
df = pd.DataFrame(data)
df.plot(kind='bar')
plt.show()
我喜欢熊猫,因为它不需要对它进行任何操作就可以获取数据并进行绘制。
答案 1 :(得分:0)
您可以通过dict.keys()
访问字典的键,并通过dict.values()
如果您想绘制2013年的数据,您可以这样做:
import matplotlib.pyplot as pl
x_13 = data['2013'].keys()
y_13 = data['2013'].values()
pl.bar(x_13, y_13, label = '2013')
pl.legend()
这应该可以解决问题。更优雅的是,可以做到:
year = '2013'
pl.bar(data[year].keys(), data[year].values(), label=year)
允许你循环它:
for year in ['2013','2014','2015']:
pl.bar(data[year].keys(), data[year].values(), label=year)