Гистограмма с накоплением на основе столбца логических значений Альтаир

Я пытаюсь сделать что-то вроде ниже.

Сгруппируйте по столбцу даты, например год или год / месяц. И визуализируйте гистограмму с накоплением на основе значения True / False.

Как лучше всего это сделать на Альтаире?

df = pd.DataFrame({
    'date': ['20-03-2017', '20-03-2017', '20-03-2018', '21-03-2018', '20-10-2019', '20-03-2019', '1-02-2019', '10-03-2020', '20-06-2020'],
    'value': [True, True, True, False, True, False, False, True, False]
})

import altair as alt
alt.Chart(df).mark_bar().encode(
    x = 'groupbyyear(date)',
    y = 'count(value)',
    color = 'value'
)

person Juan    schedule 11.01.2020    source источник


Ответы (1)


Вы очень близки: вместо groupbyyear вы можете использовать year преобразование единицы времени, и поскольку ваши даты имеют нестандартный формат, вы можете сначала использовать pandas _ 3_, чтобы преобразовать их в стандартные значения даты. Результат выглядит так:

import altair as alt
import pandas as pd

df = pd.DataFrame({
    'date': ['20-03-2017', '20-03-2017', '20-03-2018', '21-03-2018', '20-10-2019', '20-03-2019', '1-02-2019', '10-03-2020', '20-06-2020'],
    'value': [True, True, True, False, True, False, False, True, False]
})

df['date'] = pd.to_datetime(df['date'])

alt.Chart(df).mark_bar().encode(
    x = 'year(date):O',
    y = 'count(value)',
    color = 'value'
)

введите здесь описание изображения

person jakevdp    schedule 11.01.2020
comment
Просто для уточнения: можно ли также показывать счетчик True / False отдельно во всплывающей подсказке? ‘Tooltip =‘ count (value) ’показывает только совокупный - person Juan; 11.01.2020
comment
Задайте еще один вопрос с дополнительной информацией о том, что вы хотите показать во всплывающей подсказке. - person jakevdp; 11.01.2020
comment
Конечно! Я создал новый вопрос. - person Juan; 11.01.2020