Сгруппированная гистограмма в альтаире - PullRequest
0 голосов
/ 13 октября 2018

Я прочитал пример сгруппированной гистограммы altair , но столбцы основаны на одном столбце данных.Можно ли иметь отдельные столбцы на основе разных столбцов данных?

Например, мои данные выглядят так:

house  price_2010    price_2020
1      42342.5       233442.34
2      145124        2342235.50

Как создать сгруппированную гистограмму с диаграммами в видеprice_2010 и price_2020?

1 Ответ

0 голосов
/ 13 октября 2018

У вас есть то, что некоторые люди называют широкоформатными данными , и Altair лучше всего работает с расширенными данными .См. документацию Altair для более подробного обсуждения.

Короткая версия: если вы хотите создать сгруппированную гистограмму с данными такого типа, сначала вам нужно будет изменить структуру фрейма данных.Для этого может пригодиться метод melt():

import altair as alt
import pandas as pd

df = pd.DataFrame({
    'index': range(5),
    'price_2010': [12, 14, 10, 9, 6],
    'price_2020': [14, 15, 12, 14, 10]
})

alt.Chart(df.melt('index')).mark_bar().encode(
    alt.X('variable:N', axis=alt.Axis(title='')),
    alt.Y('value:Q', axis=alt.Axis(title='price', grid=False)),
    color=alt.Color('variable:N'),
    column='index:O'
).configure_view(
    stroke='transparent'
)

enter image description here

Обратите внимание, что при выпуске Altair 3.0он будет включать в себя кратное преобразование , которое позволит вам выполнить операцию, выполненную с помощью df.melt(), как часть спецификации диаграммы, а не как этап предварительной обработки.

...