Advertisement
DefconOne

Проект "Рынок заведений общепита Москвы". Какие категории заведений чаще являются сетевыми? График

Oct 30th, 2022
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.23 KB | None | 0 0
  1. # готовим данные для графика (moscow_places - наш датафрейм)
  2. moscow_places_chachains_by_category = moscow_places.groupby(['category', 'chain']).agg(count=(
  3.     'chain', 'count'
  4. )).reset_index().merge(moscow_places.groupby('category').agg(total=('category', 'count')).reset_index(), how='left')
  5.  
  6. # рабочий вариант с форматом float
  7. moscow_places_chachains_by_category['share'] = (
  8.     moscow_places_chachains_by_category['count'] / moscow_places_chachains_by_category['total'] * 100
  9. ).map(lambda x: "{0:.2f}".format(x)).astype('float')
  10.  
  11. # # желаемый вариант с процентами
  12. # moscow_places_chachains_by_category['share'] = (
  13. #     moscow_places_chachains_by_category['count'] / moscow_places_chachains_by_category['total']
  14. # ).map(lambda x: "{0:.2%}".format(x))
  15.  
  16. moscow_places_chachains_by_category = moscow_places_chachains_by_category.sort_values(
  17.     by=['chain', 'share'], ascending=False
  18. ).reset_index(drop=True)
  19.  
  20. # функция для построения графика bar (с параметром color) средствами plotly.express
  21. def px_bar_stack(
  22.     df, x, y, color, hover_data, title, xlabel, ylabel, legend_title, width=1100, height=900, yanchor='top', y_1=0.99
  23. ):
  24.     fig = px.bar(
  25.         df,
  26.         x=x, y=y,
  27.         color=color,
  28.         hover_data=hover_data,
  29.         barmode='stack',
  30.         text_auto=True,
  31.         title=title, # указываем заголовок
  32.         width=width,
  33.         height=height
  34.     )
  35.     fig.update_traces(textposition='inside')
  36.     fig.update_xaxes(title_text=xlabel) # подпись для оси X
  37.     fig.update_yaxes(title_text=ylabel) # подпись для оси Y
  38.     fig.update_layout(legend=dict(
  39.         yanchor='top',
  40.         y=y_1,
  41.         xanchor='right',
  42.         x=0.99
  43.     ), legend_title=legend_title)
  44.     fig.show()
  45.  
  46. px_bar_stack(
  47.     moscow_places_chachains_by_category, 'category', 'share', 'chain',
  48.     ['category', 'chain', 'count', 'total', 'share'], 'Доля сетевых заведений по категориям (%)',
  49.     'Категория', 'Доля сетевых заведений, %', 'Является сетью', 950, 400, 'bottom', 0.75
  50. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement