Я устанавливаю и расплавляю набор данных Airbnb и пытаюсь построить сгруппированный график:
from plotnine import *
airbnb_melted = pd.melt(airbnb_newcomers, id_vars =['host_id'], value_vars =['host_identity_verified', 'host_is_superhost'])
print(airbnb_melted)
Расплавленный набор данных выглядит так:
Я знаю, что мой следующий код неверен, и вывод сюжета не тот, который я хочу, но он наиболее близок к моей идее:
ggplot(airbnb_melted, aes(x='variable', y='value')) +\
geom_bar(stat = 'sum', position=position_dodge())
Я искал в Интернете и нашел много примеров сюжетов с y
в качестве числовой переменной и stat='count'
, которые можно использовать. Однако y
здесь является категоричным и показывает ошибку PlotnineError: 'stat_count() must not be used with a y aesthetic'
Как можно построить сгруппированную гистограмму, аналогичную следующему формату? Оранжевые слова - это то, что я добавил в качестве указания. Спасибо.
Обновления от 20 января 2020: благодаря помощи @StupidWolf кодирование работает следующим образом:
airbnb_host_count = airbnb_melted.replace(np.NaN, 'NA').groupby(['value', 'variable']).count().reset_index()
'host_id' фактически указывает здесь значения:
ggplot(airbnb_host_count, aes(x='variable', y='host_id', fill='value')) +\
geom_bar(stat='sum', position=position.dodge())