在 Altair 中更改图例的大小
Changing Size of Legend in Altair
我喜欢 Altair 制作等值线图!然而,我最大的问题是我无法弄清楚如何更改图例的大小。我已经通读了文档并尝试了几件事但无济于事。
这是一个使用 Altair 文档中的 unemployment map by county 的示例。我添加了一个 'config' 层来更改地图和图例上标题的字体大小。请注意 "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
图像应如下所示:
如果我这样改变地图的大小:
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
图例保持相同大小,因此现在与地图相比它看起来很小:
或者,如果我把地图缩小,图例就会很大!
我已经尝试了十几种不同的方法,但都无济于事。
有人对此有解决方案吗?
如您所见,图例具有默认大小(以像素为单位),无论图表大小如何,该大小都是恒定的。如果您想调整它,可以使用configure_legend()
图表方法。
在Altair 3.0及以后版本中,以下参数是调整图例渐变大小的相关参数:
chart.configure_legend(
gradientLength=400,
gradientThickness=30
)
第一个答案非常接近,但缺少更改图例中字体大小的最重要部分。使用下面的代码片段调整图例中文本的字体大小。
.configure_legend(
titleFontSize=18,
labelFontSize=15
)
我喜欢 Altair 制作等值线图!然而,我最大的问题是我无法弄清楚如何更改图例的大小。我已经通读了文档并尝试了几件事但无济于事。
这是一个使用 Altair 文档中的 unemployment map by county 的示例。我添加了一个 'config' 层来更改地图和图例上标题的字体大小。请注意 "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
图像应如下所示:
如果我这样改变地图的大小:
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
图例保持相同大小,因此现在与地图相比它看起来很小:
或者,如果我把地图缩小,图例就会很大!
我已经尝试了十几种不同的方法,但都无济于事。
有人对此有解决方案吗?
如您所见,图例具有默认大小(以像素为单位),无论图表大小如何,该大小都是恒定的。如果您想调整它,可以使用configure_legend()
图表方法。
在Altair 3.0及以后版本中,以下参数是调整图例渐变大小的相关参数:
chart.configure_legend(
gradientLength=400,
gradientThickness=30
)
第一个答案非常接近,但缺少更改图例中字体大小的最重要部分。使用下面的代码片段调整图例中文本的字体大小。
.configure_legend(
titleFontSize=18,
labelFontSize=15
)