Выравнивание меток легенды Altair binned для минимальных и максимальных значенийPython

Программы на Python
Ответить
Anonymous
 Выравнивание меток легенды Altair binned для минимальных и максимальных значений

Сообщение Anonymous »

Я использую этот пример из документации:

Код: Выделить всё

import altair as alt
from vega_datasets import data

source = data.movies()

alt.Chart(source).mark_bar().encode(
alt.X("IMDB_Rating:Q").bin(maxbins=20).scale(domain=[1, 10]),
alt.Y('count()'),
alt.Color(
"IMDB_Rating:Q",
).bin(maxbins=20).scale(scheme='pinkyellowgreen')
)
Он создает легенду, которая не включает метки для значений минимального и максимального интервала (1 и 10). Я могу заставить эти метки появиться, добавив следующую конфигурацию легенды в цветовую шкалу:

Код: Выделить всё

alt.Chart(source).mark_bar().encode(
alt.X("IMDB_Rating:Q").bin(maxbins=20).scale(domain=[1, 10]),
alt.Y('count()'),
alt.Color(
"IMDB_Rating:Q",
legend=alt.Legend(
values=[1, 2, 3, 4, 5, 6, 7, 8, 9 , 10],
labelExpr="datum.value"
),
).bin(maxbins=20).scale(scheme='pinkyellowgreen')
)
Но метки min и max не совсем совпадают со значениями 1 и 10:
Изображение

Устранение перекрытия с заголовком легенды. Я бы хотел, чтобы 1 и 10 были «посередине» выровнены по границе их контейнера, как и все остальные метки. Добавление labelBaseline="middle" не имеет никакого эффекта. Кажется, метки вынуждены оставаться в пределах высоты полосы градиента.
Та же проблема может возникнуть и с метками других делений оси, где метка вынуждена оставаться в пределах оси, а не центрироваться на своей метке.

Подробнее здесь: https://stackoverflow.com/questions/798 ... max-values
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»