Как в Matplotlib сделать функцию для автоматического построения графиков с заявленными параметрами

Необходимо автоматизировать построение серии графиков в которой меняется только один столбец.

month_last_price = data.pivot_table(index='month', 
                                   values = 'last_price', 
                                   aggfunc = 'count').plot(grid=True, figsize=(12, 5))

day_last_price = data.pivot_table(index='weekday', 
                                   values = 'last_price', 
                                   aggfunc = 'count').plot(grid=True, figsize=(12, 5))

Как лучше сделать через функцию или через цикл? Попытался вот так

def super_show(index_data, value_data):
    super_show.plot(index = index_data,  values = value_data, grid=True, figsize=(12, 5))
super_show('year', 'last_price')
plt.show()

Но пишет что

AttributeError: 'function' object has no attribute 'plot'


Ответы (1 шт):

Автор решения: MaxU

Если я правильно понял вопрос:

def super_show(data, index, values, columns=None, aggfunc="count", 
               fill_value=0, dropna=True, figsize=(12, 5), grid=True, **kwargs):
    (data
     .pivot_table(index=index, values=values, columns=columns, 
                  aggfunc=aggfunc, fill_value=fill_value, dropna=dropna)
     .plot(figsize=figsize, grid=grid, **kwargs))

вызов:

super_show(data=data, index='year', values='last_price')
→ Ссылка