Изменение размера легенды в Альтаире

Я люблю Альтаира за создание карт хороплетов! Однако моя самая большая проблема в том, что я не могу понять, как изменить размер легенды. Я прочитал документацию и попробовал несколько вещей, но безрезультатно.

Вот пример использования карты безработицы по округам из документации Альтаира. Я добавил слой «config», чтобы изменить размер шрифта для заголовка как на карте, так и в легенде. Обратите внимание на часть кода .configure_legend () в "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=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

Легенда остается того же размера, поэтому теперь она выглядит крошечной по сравнению с картой:

введите описание изображения здесь

В качестве альтернативы, если я уменьшу размер карты, легенда будет огромной!

введите описание изображения здесь

Я пробовал около дюжины разных вещей, но безрезультатно.

У кого-нибудь есть решение?


person Ragnar Lothbrok    schedule 31.03.2019    source источник


Ответы (2)


Как вы видели, размер легенды по умолчанию в пикселях является постоянным независимо от размера диаграммы. Если вы хотите отрегулировать его, вы можете использовать метод configure_legend() диаграммы.

В Altair 3.0 или новее следующие аргументы являются важными для настройки размера градиента легенды:

chart.configure_legend(
    gradientLength=400,
    gradientThickness=30
) 
person jakevdp    schedule 31.03.2019
comment
Спасибо, jakevdp. Это что-то было недавно исправлено в версии 3.0? Я почти уверен, что пробовал gradientHeight и gradientWidth в 2.4, и это не сработало, но этот код определенно работает в 3.0. Однако, похоже, изменилось и множество других вещей. Например, теперь цветовая схема выглядит совсем иначе :) - person Ragnar Lothbrok; 31.03.2019
comment
Легенды - одно из больших изменений по сравнению с Vega-Lite 2 до 3: теперь есть опции для создания как горизонтальных, так и вертикальных легенд, а параметры конфигурации были обновлены и переименованы соответственно. - person jakevdp; 01.04.2019

Первый ответ очень близок, но в нем отсутствует самая важная часть для изменения размера шрифта в легенде. Используйте приведенный ниже фрагмент кода, чтобы настроить размер шрифта текста в легенде.

.configure_legend(
titleFontSize=18,
labelFontSize=15
) 

person TroyG    schedule 16.02.2021