сюжет с накоплением в процентах - PullRequest
0 голосов
/ 09 мая 2019

Допустим, у меня есть следующий фрейм данных с двумя столбцами: метка: может быть -1, 0 или 1. years_of_expereicen: может быть 0,1,2,3,4,5,6,7,8,9

label   SSP_years_of_experience
22640   -1.0    5.0
181487  1.0 3.0
327672  0.0 9.0
254919  0.0 6.0
136942  1.0 10.0

Моя цель здесь - использовать этот фрейм данных для создания столбчатой ​​диаграммы в процентах, где ось x - это годы опыта, а столбцы имеют разные цвета, каждый из которых имеет значение одного года опыта.Другими словами, у нас есть 10 возможных значений на оси x, а затем три столбца для каждого значения разных цветов, которые отображаются на каждую из меток.Ось Y должна быть в процентах.

Я бы знал, как это сделать в R (с ggplot), но я новичок в matplotlib и немного новичок в python.

Бонусные баллыгде я могу передать в двух столбцах в качестве переменных (например, х, у).Больше бонусных баллов за то, как отображать количество наблюдений в каждом столбце в виде текста на графике.

1 Ответ

2 голосов
/ 09 мая 2019

Если ваш фрейм данных pandas, попробуйте:

exp_name = 'year_of_experience'
label_name = 'label'
new_df = (df.groupby(exp_name)[label_name]
            .value_counts(normalize=True)
            .sort_index()
            .unstack()
         )

new_df.plot.bar(stacked=True)

Игрушечный фрейм данных:

np.random.seed(0)
df = pd.DataFrame({'label': np.random.choice([-1,0,1], size=1000, replace=True),
                   'year_of_experience': np.random.randint(0,10, 1000)})

Выход:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...