Я хочу сделать барплот из следующих данных:
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'
Я не знаю, где я делаю ошибку, и ценю любую помощь.