在 Altair 中更改图例的大小

Rag*_*rok 7 python gis data-science vega-lite altair

我很喜欢 Altair 创建等值分布图!但是,我最大的问题是我无法弄清楚如何更改图例的大小。我已经通读了文档并尝试了几件事无济于事。

这是一个使用Altair 文档中按县划分的失业地图的示例。我添加了一个“配置”层来更改地图和图例上标题的字体大小。请注意“config”中代码的 .configure_legend() 部分。

counties = alt.topo_feature(data.us_10m.url, 'counties')
source = data.unemployment.url

foreground = alt.Chart(counties).mark_geoshape(
    ).encode(
    color=alt.Color('rate:Q', sort="descending",  scale=alt.Scale(scheme='plasma'), legend=alt.Legend(title="Unemp Rate", tickCount=6))
).transform_lookup(
    lookup='id',
    from_=alt.LookupData(source, 'id', ['rate'])
).project(
    type='albersUsa'
).properties(
    title="Unemployment Rate by County",
    width=500,
    height=300
)

config = alt.layer(foreground).configure_title(fontSize=20, anchor="middle").configure_legend(titleColor='black', titleFontSize=14) 

config
Run Code Online (Sandbox Code Playgroud)

图像应该是这样的:

在此处输入图片说明

如果我像这样更改地图的大小:

counties = alt.topo_feature(data.us_10m.url, 'counties')
source = data.unemployment.url

foreground = alt.Chart(counties).mark_geoshape(
    ).encode(
    color=alt.Color('rate:Q', sort="descending",  scale=alt.Scale(scheme='plasma'), legend=alt.Legend(title="Unemp Rate", tickCount=6))
).transform_lookup(
    lookup='id',
    from_=alt.LookupData(source, 'id', ['rate'])
).project(
    type='albersUsa'
).properties(
    title="Unemployment Rate by County",
    width=900,
    height=540
)

config = alt.layer(foreground).configure_title(fontSize=20, anchor="middle").configure_legend(titleColor='black', titleFontSize=14) 

config
Run Code Online (Sandbox Code Playgroud)

图例保持相同的大小,因此与地图相比,它现在看起来很小:

在此处输入图片说明

或者,如果我使地图尺寸变小,则图例会很大!

在此处输入图片说明

我尝试了十几种不同的方法都无济于事。

任何人都有解决方案?

jak*_*vdp 9

如您所见,图例具有以像素为单位的默认大小,无论图表大小如何,该大小都是恒定的。如果你想调整它,你可以使用configure_legend()图表方法。

在 Altair 3.0 或更高版本中,以下参数是调整图例渐变大小的相关参数:

chart.configure_legend(
    gradientLength=400,
    gradientThickness=30
) 
Run Code Online (Sandbox Code Playgroud)