Как сделать групповой график в matplotlib

Я хочу сделать диаграмму из следующих данных:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

sales={'Apple':[50, 60, 40, 55],
    'Orange': [40, 25, 35, 60],
   'Cucumber': [10, 30, 40, 15],
   'Banana': [70, 60, 40, 50],
   'Peach':[10, 30, 40, 20],
   'Melon': [5, 20, 70, 10],
   'Berries': [30, 40, 50, 60]}

data=pd.DataFrame(sales, index=['Q1','Q2','Q3','Q4'])

Я определяю функцию, как показано ниже:

def bar_plots(df, bar_width, alpha=0.3, colors=None ):
    indx=np.arange(df.shape[1])
    for colm, idx, colr in zip(df.columns, indx, colors):
        plt.bar([p+(bar_width*idx) for p in indx ], df[colm], alpha, colr, label=colm )
    plt.xlabel('Quarters')
    plt.ylabel('Sales')
    plt.xticks(index + (bar_width*(len(indx))) / (len(indx)+1), ('Q1', 'Q2', 'Q3', 'Q4'))

При вызове функции я получаю следующую ошибку:

bar_plots(data, 0.3, alpha=0.3, colors=['r','orange','g','y','coral','lime','b'] )



AttributeError: 'NoneType' object has no attribute 'update'

Я не знаю, где делаю ошибку, и ценю любую помощь.

0
0
125
1

Ответы 1

вы можете использовать plot(kind='bar')

data.plot(kind='bar')

data.plot(kind='bar')

@ nimrodz-спасибо за ответ. Хотя pandas и seaborn могут сделать более простой штрих-график, мне было интересно сделать это в matplotlib для обучения

A.E 26.10.2018 18:05

Другие вопросы по теме