如何在Altair中通过DataFrame的color列设置单个点颜色?
用Altair直接调用DataFrame中的十六进制颜色列设置点颜色
你当前的写法会让Altair把color列当成分类变量,自动从内置调色板里分配颜色,自然不会用你给定的十六进制值。要直接用数据里的颜色,得禁用Altair的自动颜色缩放。
正确写法如下:
import altair as alt points = alt.Chart(data).mark_point().encode( x='x:Q', y='y:Q', color=alt.Color('color', scale=None) )
或者明确指定字段类型为名义型(更稳妥):
import altair as alt points = alt.Chart(data).mark_point().encode( x='x:Q', y='y:Q', color=alt.Color('color:N', scale=None) )
核心就是scale=None这个参数,它告诉Altair不要自动生成调色板,直接使用你DataFrame里的十六进制颜色字符串。
内容的提问来源于stack exchange,提问作者vahndi
相关产品推荐
相关产品推荐

