格式化Altair区域地图颜色刻度

3

我正在尝试用色阶图对百分比进行编码。如何设置比例尺以显示百分比值(例如 10%),而不是分数值(例如 0.1)?我知道对于常规的 X 或 Y 轴,您可以使用 axis=alt.Axis(format='.0%') 进行格式化,但我不知道如何为此颜色比例尺使用格式化。

import altair as alt
import pandas as pd
from vega_datasets import data
alt.renderers.enable('notebook')

airports = pd.read_csv(data.airports.url)
airports = airports.groupby('state').agg({'iata': 'count'})
airports['id'] = range(1, len(airports) + 1)
airports['pct'] = airports['iata'] / airports['iata'].sum()

states = alt.topo_feature(data.us_10m.url, feature='states')

alt.Chart(states).mark_geoshape().encode(
    color='pct:Q'
).transform_lookup(
    lookup='id',
    from_=alt.LookupData(airports, 'id', ['pct'])
).project('albersUsa')

enter image description here

1个回答

4

颜色编码的legend属性接受一个format参数,可以控制图例刻度的格式:

alt.Chart(states).mark_geoshape().encode(
    color=alt.Color('pct:Q', legend=alt.Legend(format=".0%"))
).transform_lookup(
    lookup='id',
    from_=alt.LookupData(airports, 'id', ['pct'])
).project('albersUsa')

在这里输入图像描述

alt.Legend文档中可获取更多信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接