带有双色颜色图的Altair图

时间:2020-01-24 12:36:00

标签: python altair

我想创建一个具有n个不同类别(每个都有特定颜色)的Altair地图,同时 还有第二个变量来控制这些类别的alpha /阴影/颜色?

现在,我能够生成按类别着色并使用我选择的任何自定义颜色的地图,并且能够生成具有连续变量并使用我选择的任何颜色图的地图。
但是,我不确定如何继续获取所需的内容。

我以为我可以用这样的颜色添加一些额外的颜色:
.encode(alt.Color('properties.Cat2:O', scale=alt.Scale(domain=domain, range=range_),alt.Color('properties.colmap2:Q', scale=alt.Scale(domain=domain, range=cm_range_))
但是我觉得我正在尝试随机的东西,而且没有靠近。

编辑

在@jakevdp的评论之后,我试图包括一个不透明参数。但是,我不确定正确的语法。

chart_json = json.loads(gdf.to_json())
chart_data= alt.Data(values=chart_json ['features'])
data_1km_geojson = alt.InlineData(values=val_1km, format=alt.DataFormat(property='features',type='json'))
domain=['Label1','Label2']
range_=['#b0d247','#007bd1']
chart_layer1 = alt.Chart(chart_data).mark_geoshape().encode(
    alt.Color('properties.Cat2:O', scale=alt.Scale(domain=domain, range=range_),title = "sometitle"),
    opacity=alt.Opacity('properties:OpacityVar:Q', bin=True),
).properties(
width=1100,
height=800
)
#Visualize the result
(background+chart_layer1).configure_view(stroke='white')

此外,我尝试用于不透明度参数的变量实际上具有非常广泛的支持(从10.000到1000亿)。我应该先进行minmax归一化吗?

1 个答案:

答案 0 :(得分:0)

通过将变量拆分为两种不同的编码(不透明度和颜色)而不是将它们都放在颜色上,在注释中解决了。