Вероятно, это скорее проблема обработки данных, чем специфичная для Altair. Но у меня есть некоторые данные опроса, где респонденты выбрали возрастной диапазон, а не их фактический возраст, и я пытаюсь составить гистограмму со средней линией. Примеры Altair со средними линиями, кажется, все делают разбивку на лету, и я не уверен, как обойти это.
Поскольку ось x категориальна (я думаю), я не могу просто добавитьлиния где-то посередине. Может быть, мне нужно преобразовать группы во что-то числовое?
Вот что у меня есть
sample = ['35-39', '25-29', '30-34', '30-34', '25-29', '30-34', '22-24',
'50-54', '30-34', '40-44', '22-24', '25-29', '22-24', '50-54',
'22-24', '35-39', '25-29', '22-24', '22-24', '25-29', '25-29',
'30-34', '22-24', '40-44', '30-34', '25-29', '30-34', '25-29']
data = pd.DataFrame({'age': sample})
data
bars = alt.Chart(data).mark_bar().encode(
x=alt.X('age'),
y='count():Q'
)
mean = alt.Chart(data).mark_rule().encode(
x = 'mean(age)',
size=alt.value(5)
)
bars+mean
Этот код создает эту диаграмму: