【问题标题】:bar chart with MatplotlibMatplotlib 条形图
【发布时间】:2016-01-02 13:23:43
【问题描述】:

这是我的数据结构:

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。

【问题讨论】:

    标签: python matplotlib charts


    【解决方案1】:
    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()
    

    我喜欢 pandas,因为它无需对数据进行任何操作和绘制即可获取您的数据。

    【讨论】:

      【解决方案2】:

      您可以通过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()
      

      这应该可以解决问题。更优雅的是,do 可以简单地做:

      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)
      

      【讨论】: