首页 > 解决方案 > Altair 图中的颜色“未定义”

问题描述

我正在使用 altair python 库创建具有 vega-lite 规范的 html 文件。我遇到了一个问题,我的情节中没有显示颜色。这是代码:

import altair as alt
import pandas
data = 'Test.csv' #this contains three columns: Rating, Frequency, and typ, where 'typ' is either E or O.
a = alt.Chart(data).mark_bar().encode(
    alt.X('Rating', type = 'ordinal'),
    alt.Y('Frequency',type = 'quantitative'),
    alt.Color('typ', type = 'nominal')
)
a.save('altairtest.html')

我得到一个没有颜色的图表,图例显示为“典型”,但只有蓝色,文本显示“未定义。

我目前正在本地使用 SimpleHttpsServer。这可能是原因吗?就我的目的而言,这种方式比使用 jupyter 更容易。谢谢

标签: pythonvegavega-litealtair

解决方案


这通常表明您的数据文件中存在问题。Data.csv我可以使用如下所示的文件重现您的问题:

Rating,Frequency, typ
0,1,O
1,2,E

然后生成的图表如下所示:

在此处输入图像描述

注意typ标题前面的空格:空格在 CSV 文件中很重要:这意味着您的列名为" typ"not "typ"

如果您从 CSV 文件的标题中删除空格,则相同的代码会为您提供:

Rating,Frequency,typ
0,1,O
1,2,E

在此处输入图像描述

确保您的字段与您的数据列完全匹配,并且您的图表应该按预期工作。


推荐阅读