带有Matplotlib的条形图

时间:2015-10-05 19:17:32

标签: python matplotlib charts

这是我的数据结构:

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。

2 个答案:

答案 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()

我喜欢熊猫,因为它不需要对它进行任何操作就可以获取数据并进行绘制。

enter image description here

答案 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)