Altair中的重复图形

时间:2018-10-12 11:59:29

标签: python altair

我正在尝试在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'])

当我运行它时,它只显示带有轴的图形,而没有其他内容。怎么了?

2 个答案:

答案 0 :(得分:2)

如果在重复图表中出现空图,通常意味着以下两种情况之一:

  1. 您的数据无法通过前端访问。例如,如果您将数据作为URL传递并且URL有错字,就会发生这种情况。
  2. 行/列中使用的列名输入错误。

作为第二个问题的示例,请考虑以下Altair's documentation中的图表:

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

enter image description here

现在让我们看看如果拼写错误的列名会发生什么(这里的“拼写错误”涉及将大写字符更改为小写):

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

enter image description here

请确保您没有误输入列名:常见问题是大写与小写,特殊字符以及列名字符串开头或结尾的空格。

答案 1 :(得分:0)

结果是我需要将alt.X(alt.repeat("row"), type='quantitative'),切换为 alt.X(alt.repeat("row"), type='ordinal'),,因为行数据是国家/地区名称。