Повторный график на альтаире

1

Я пытаюсь создать повторяющийся график в 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

2 ответа

2

Если вы получаете пустые графики на повторном графике, это обычно означает одну из двух вещей:

  1. ваши данные недоступны для внешнего интерфейса. Это может произойти, например, если вы передаете свои данные в виде URL-адреса, а URL-адрес имеет опечатку.
  2. имена столбцов, используемые в строке/столбце, неверно напечатаны.

В качестве примера второй проблемы рассмотрим эту диаграмму из документации 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()

Изображение 174551

Теперь посмотрим, что произойдет, если мы неправильно назовем имена столбцов (здесь наше "неправильное написание" подразумевает изменение символа верхнего регистра на нижний регистр):

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()

Изображение 174551

Убедитесь, что вы неправильно написали имена столбцов: общие проблемы - это верхний и нижний регистр, специальные символы и пробелы в начале или конце строк столбца.

  • 0
    Есть ли что-то еще, что может быть причиной? Данные в порядке, потому что они работают для других графиков. И имена столбцов пишутся правильно.
  • 0
    Если вы добавите MCVE, я смогу помочь; в противном случае это просто слепое предположение, и я уже дал свои лучшие догадки!
0

Оказывается, мне нужно было переключить alt.X(alt.repeat("row"), type='quantitative'), на alt.X(alt.repeat("row"), type='ordinal'), потому что строка данные - это названия стран.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню