столбчатый график стека Python для группирования по значениям

#python #matplotlib #seaborn

#python #matplotlib #seaborn

Вопрос:

Итак, в настоящее время я произвел кластеризацию для набора данных Facebook и поместил данные метки для каждой строки с каждым кластером, который у меня есть, и фрейм данных выглядит следующим образом

введите описание изображения здесь

итак, я хотел бы отобразить данные в виде столбчатой диаграммы, поэтому я сгруппировал данные следующим образом

 dfff=x_df.groupby("cluster")["page_type"].value_counts()
  

и вывод, подобный этому

 cluster  page_type 
0        government    5387
         company       3231
         politician    3149
         tvshow        1679
1        government     563
         company          9
         politician       2
2        company       3255
         politician    2617
         tvshow        1648
         government     930
Name: page_type, dtype: int64
  

итак, как я могу построить этот ряд в виде столбчатой диаграммы из 3 столбцов (0, 1, 2), которые являются кластером, который у меня есть?

Ответ №1:

 import pandas as pd
import matplotlib.pyplot as plt

# given dfff and a groupby dataframe
dfp = dfff.unstack()

# display(dfp)
page_type  company  government  politician  tvshow
id                                                
0           3231.0      5387.0      3149.0  1679.0
1              9.0       563.0         2.0     NaN
2           3255.0       930.0      2617.0  1648.0

# plot stacked bar
dfp.plot.bar(stacked=True)
plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left')
  

введите описание изображения здесь

Seaborn look

 import matplotlib.pyplot as plt

# set style parameter
plt.style.use('seaborn')

# plot stacked bar
dfp.plot.bar(stacked=True)
plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left')
  

введите описание изображения здесь

Комментарии:

1. большое вам спасибо, это мне очень помогает, проблема заключалась в том, как преобразовать его в datafram функция unstack поможет мне, я реализую ее в seabor спасибо

2. @RAbeeq рад, что это помогло. Seaborn — это просто API для matplotlib, а pandas использует matplotlib. Непросто создать столбчатую диаграмму с помощью seaborn api.

3. @RAbeeq если вы хотите, чтобы он выглядел как график seaborn, используйте plt.style.use('seaborn') . Это глобальный параметр.