Hvplot/ боке подведены Гистограмма от Pandas Dataframe

Я пытаюсь напечатать "простую" гистограмму, используя HVPlot и bokeh в блокноте jupyter. Вот некоторые упрощенные данные:

Мои данные изначально выглядят так:

Моя цель - получить такую ​​гистограмму (обратите внимание, что она не должна быть сложена. Единственное, что важно - это итоги.):

Поскольку я не мог понять, как получить гистограмму с суммой определенных столбцов, я использовал pandas.melt чтобы моделировать данные так:

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

Вот код, который я использовал для тестирования:

 testd = {'Name': ['Item1', 'Item2','Item3','Item3'],'Filter': ['F1','F2','F1','F1'], 
                 'Count': [1,5,2,1], 'CountCategory': ['CountA','CountB','CountA','CountD']}
 testdf = pd.DataFrame(data=testd)
 testdf.hvplot.bar('CountCategory','Count',groupby='Filter', rot=90, aggregator=np.sum)

Это ничего не изменит, если я опущу aggregator=np.sum

Кто-нибудь знает, как правильно построить это? Он не должен использовать "транспонированные" данные, поскольку я делаю это только потому, что не знаю, как построить исходные данные. И другой вопрос будет, если есть возможность

1 ответ

aggregator используется операцией datashade/rasterize для агрегирования данных и действительно не влияет на гистограммы. Если вы хотите объединить данные, я рекомендую сделать это, используя методы pandas. Однако в вашем случае я не думаю, что это проблема, основная проблема в реализации запрошенного вами сюжета состоит в том, что в holoviews легенда, как правило, связана со стилем, что означает, что вы не можете легко получить легенду для отображения фильтра. и раскрасить каждую полосу отдельно.

Вы можете сделать это и добавить Фильтр как столбец при наведении, что означает, что у вас все еще есть доступ к нему:

testdf.hvplot.bar('CountCategory', 'Count', by='Name', stacked=True, rot=90, hover_cols=['Filter'])

Я, вероятно, подниму проблему в HoloViews, чтобы поддержать легенду, отделенную от стиля.

Другие вопросы по тегам