Я пытаюсь создать повторяющийся график в altair.
Вот мой код:
x = alt.Chart(data).mark_bar().encode(
alt.X(alt.repeat("row"), type='quantitative'),
alt.Y(alt.repeat("column"), type='quantitative')
).repeat(
row= ['country'],
column=['alcohol_use', 'drug_use', 'high_meat', 'low_exercise', 'smoking'])
Когда я запускаю его, он просто показывает графики с осями и ничего больше. Что может быть неправильным?
Если вы получаете пустые графики на повторном графике, это обычно означает одну из двух вещей:
В качестве примера второй проблемы рассмотрим эту диаграмму из документации Altair:
import altair as alt
from vega_datasets import data
iris = data.iris.url
alt.Chart(iris).mark_point().encode(
alt.X(alt.repeat("column"), type='quantitative'),
alt.Y(alt.repeat("row"), type='quantitative'),
color='species:N'
).properties(
width=200,
height=200
).repeat(
row=['petalLength', 'petalWidth'],
column=['sepalLength', 'sepalwidth']
).interactive()
Теперь посмотрим, что произойдет, если мы неправильно назовем имена столбцов (здесь наше "неправильное написание" подразумевает изменение символа верхнего регистра на нижний регистр):
alt.Chart(iris).mark_point().encode(
alt.X(alt.repeat("column"), type='quantitative'),
alt.Y(alt.repeat("row"), type='quantitative'),
color='species:N'
).properties(
width=200,
height=200
).repeat(
row=['petallength', 'petalwidth'],
column=['sepallength', 'sepalwidth']
).interactive()
Убедитесь, что вы неправильно написали имена столбцов: общие проблемы - это верхний и нижний регистр, специальные символы и пробелы в начале или конце строк столбца.
Оказывается, мне нужно было переключить alt.X(alt.repeat("row"), type='quantitative'),
на alt.X(alt.repeat("row"), type='ordinal'),
потому что строка данные - это названия стран.