Существует ли функция Python для построения графика процентного соотношения каждой категории категориального признака в каждом кластере?

#python #pandas #pandas-groupby

Вопрос:

Я пытаюсь построить график, который выглядит так

этот

Я попытался использовать это для создания таблицы, но единственная проблема в том, что она форматирует ее как два набора строк вместо двух столбцов.

 combinedDf.groupby(['Cluster Label'])['Diagnosis'].value_counts(normalize=True).mul(100).round(1).astype(str)   '%'
 

Я должен сделать это для всех функций в моем наборе данных.

Ответ №1:

Вам следует заглянуть в библиотеку plotly. Вы можете сделать много интересных графиков, используя эту лабораторию.

Я считаю, что нашел простой способ решить вашу проблему.

Учитывая, что фрейм данных выглядит следующим образом :

 import plotly.express as px

df = px.data.tips() #this is a dataframe example provide by plotly for us to exercice

print(df)

>>> output:
     total_bill   tip     sex smoker   day    time  size
0         16.99  1.01  Female     No   Sun  Dinner     2
1         10.34  1.66    Male     No   Sun  Dinner     3
2         21.01  3.50    Male     No   Sun  Dinner     3
3         23.68  3.31    Male     No   Sun  Dinner     2
4         24.59  3.61  Female     No   Sun  Dinner     4
..          ...   ...     ...    ...   ...     ...   ...
239       29.03  5.92    Male     No   Sat  Dinner     3
240       27.18  2.00  Female    Yes   Sat  Dinner     2
241       22.67  2.00    Male    Yes   Sat  Dinner     2
242       17.82  1.75    Male     No   Sat  Dinner     2
243       18.78  3.00  Female     No  Thur  Dinner     2
 

Вы можете построить такой график :

График

С помощью простого кода :

 fig = px.histogram(df, x="sex", y="total_bill", color="smoker", barmode="group", histfunc="sum")
fig.show()
 

В вашем случае вы считаете, что строка кода будет выглядеть так:

рис. = px.гистограмма(df, x=»Диагноз», y=»Процент», цвет=»Показать», barmode=»группа», функция гистограммы=»сумма»)

Извините, но я не совсем понимаю вашу просьбу, поэтому больше ничем не могу вам помочь. Если вы хотите узнать больше о графике, который я отобразил, я настоятельно рекомендую вам взглянуть на это : https://plotly.com/python/bar-charts/