基于布尔值列 Altair 的堆积条形图
Stacked Bar-chart based on bool value column Altair
我正在尝试执行如下操作。
按日期列分组,例如年份或 year/month。
并根据 True/False 值可视化堆叠条形图。
在 Altair 中执行此操作的最佳方法是什么?
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'
)
您非常接近:您可以使用 year
time unit transform, and since your dates are non-standard format, you can first use pandas to_datetime
代替 groupbyyear
将它们转换为标准日期值。结果如下所示:
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'
)
我正在尝试执行如下操作。
按日期列分组,例如年份或 year/month。 并根据 True/False 值可视化堆叠条形图。
在 Altair 中执行此操作的最佳方法是什么?
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'
)
您非常接近:您可以使用 year
time unit transform, and since your dates are non-standard format, you can first use pandas to_datetime
代替 groupbyyear
将它们转换为标准日期值。结果如下所示:
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'
)