Форматирование легенды карты Altair choropleth, масштаба и всплывающей подсказки

#tooltip #legend #altair #choropleth

#всплывающая подсказка #легенда #altair #хороплет

Вопрос:

Я пытаюсь сделать так, чтобы «Процент» всплывающей подсказки был фактическим процентом, а не десятичным. Даже когда я включаю alt.Tooltip('Percentage:Q',format='.2%') , это, кажется, не работает.

Кроме того, я пытаюсь сделать масштаб легенды от 0-100% вместо 40-70%.

Любая помощь будет признательна!

 import altair as alt
from vega_datasets import data
states = alt.topo_feature(data.us_10m.url, 'states')
variable_list = ['Percentage', 'State Name', 'state_id']

alt.Chart(states).mark_geoshape().encode(
color=alt.Color('Percentage:Q', title='Positive NFB', legend=alt.Legend(format=".0%"), scale=alt.Scale(scheme='yellowgreen')),
tooltip=['State Name:N', 'Percentage:Q', alt.Tooltip('Percentage:Q',format='.2%')]).properties(title="Percentage of People in Households with Positive NFB"
).transform_lookup(
lookup='id',
from_=alt.LookupData(states_positive_NFB, 'state_id', variable_list)
).properties(
width=500,
height=300
).project(
type='albersUsa'
)
 

Текущая карта:
введите описание изображения здесь

Ответ №1:

  • Чтобы изменить область цветовой шкалы, вы можете передать domain аргумент alt.Scale() : например
     alt.Scale(scheme='yellowgreen', domain=[0, 1])
     
  • Чтобы формат всплывающей подсказки отображался, вы можете удалить дублирующуюся кодировку всплывающей подсказки, поскольку первая, по-видимому, имеет приоритет. То есть, вместо
     tooltip=['State Name:N', 'Percentage:Q', alt.Tooltip('Percentage:Q',format='.2%')]
     

    вы должны использовать

     tooltip=['State Name:N', alt.Tooltip('Percentage:Q', format='.2%')]
     

Комментарии:

1. Можно ли добавлять проценты непосредственно к отдельным состояниям? Или всплывающая подсказка — единственный вариант?

2. @MorganMcCue Можно использовать mark_text() с долготой и широтой, аналогично этому примеру altair-viz.github.io/gallery/airports_count.html