Как создать кластерную гистограмму в Altair - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь построить простую кластеризованную гистограмму Activity1 и Activity2 для каждого месяца рядом друг с другом.Я не мог заставить это работать.Сгруппированная гистограмма - самый близкий пример, который я мог найти, но все еще не соответствует моим требованиям.Я попытался использовать длинный формат с расплавом, но все еще не смог получить кластеризованную гистограмму.Я был бы очень признателен, если бы кто-нибудь помог мне разобраться, как создать его, используя altair.

d = {'Month':[1,2,3,4,5,6], 
     'Act1':[10,20,25,32,45,50],
     'Act2':[20,35,45,55,65,75]}
    df = pd.DataFrame(d)

dfm = pd.melt(df,id_vars=['Month'], value_vars = ['Act1','Act2'], var_name='Activity',value_name='Total')

alt.Chart(dfm).mark_bar().encode(
    x='Month:O',
    y='sum(Total):Q',
    color='Activity:O',
    column='Activity:O'
)

1 Ответ

0 голосов
/ 10 декабря 2018

Если вы переключите кодировки column и x, вы получите сгруппированную гистограмму.Чтобы очистить его, вы также можете удалить метки x-encoding:

alt.Chart(dfm).mark_bar().encode(
    x=alt.X('Activity:O', title=None, axis=None),
    y='sum(Total):Q',
    color='Activity:O',
    column='Month:O',
)

enter image description here

...