Создание легенды на несколько столбцов в Альтаире - PullRequest
0 голосов
/ 25 июня 2019

Извиняюсь за то, что не могу предоставить много кода, все взаимосвязано, и сейчас это невозможно.

Моя проблема в том, что я создал точечную диаграмму, которая служит «интерактивной легендой».

legend = alt.Chart(source).mark_point().encode(
    y=alt.Y('STATE', axis=alt.Axis(orient='right')),
).add_selection(
    select_state
)

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

  • Есть ли какой-нибудь способ обернуть эту диаграмму так, чтобы она отображалась в нескольких столбцах? Я не думаю, что это было бы возможно, учитывая, что легенда представляет собой точечный график из одного столбца.

  • Есть ли какой-нибудь способ преобразовать это в некую структуру в Альтаире, которая позволяет заключать в несколько столбцов, которые не являются диаграммой?

enter image description here

В качестве альтернативы, есть ли способ изменить положение моего слайдера? Похоже, что внизу :( Если бы оно появилось сверху, я думаю, что оно могло бы появиться на том же экране, что и все остальное, и поэтому график легенды не был бы такой большой проблемой.

slider = alt.binding_range(min=1992, max=2016, step=1)
# 1st selection filter
select_year = alt.selection_single(name="YEAR", fields=['YEAR'],
                                   bind=slider, init={'YEAR': 1992})

enter image description here

1 Ответ

1 голос
/ 25 июня 2019

Вы можете указать свойство legend.columns кодировки для управления количеством столбцов в легенде.Например, используя набор данных автомобилей:

import altair as alt
from vega_datasets import data

alt.Chart(data.cars.url).mark_point().encode(
    x='Horsepower:Q',
    y='Miles_per_Gallon:Q',
    color=alt.Color('Name:N', legend=alt.Legend(columns=8))
).properties(
    # Adjust chart width and height to match size of legend
    width=600,
    height=600
)

enter image description here

Однако при таком количестве атрибутов легенды становятся не очень полезными на практике.Вместо этого вы могли бы рассмотреть кодировку tooltip для отображения подробной информации, подобной этой.

...