Выравнивание названия диаграммы с левой стороны чисел по оси Y - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь создать тему Альтаира, которая соответствует нашим внутренним правилам. Я нашел эту превосходную статью , которая решила большинство моих проблем. Однако ни статья, ни поиск документации не решили проблему выравнивания названия диаграммы с левой стороной чисел на оси у. См. Пунктирную линию в теме Городского института для визуального объяснения . Проблема в том, что я не знаю ширину самого длинного числа по оси Y. Решения, которые я нашел, просто жестко закодировали смещение ожидаемой ширины числа. Тем не менее, я должен сделать тему, которая автоматически соответствует стандарту во всех случаях. Подсказки к возможным решениям приветствуются. Я опробую их и опубликую результаты.

Ответы [ 2 ]

1 голос
/ 17 февраля 2020

Я не уверен, что это именно то, что вы ищете, так как вы упомянули о желании создать тему, но вы можете воссоздать внешний вид темы пользовательского интерфейса, добавив текст на диаграмму с помощью mark_text ().

Вот пример:

df = pd.DataFrame({'col1':[0,1,2,3,4,5], 'col2':[0,1,2,3,4,5]})
text_df = pd.DataFrame({'col1':[0], 'col2':[0], 'col3':['title']})

line = alt.Chart(df).mark_line().encode(x='col1', y='col2')
text = alt.Chart(text_df.query('col1 == 0')).mark_text(dx=-60, dy=-400, fontSize=24, font='Lato').encode(x='col1', y='col2', text='col3')
line + text

Вот итоговый график:

enter image description here

1 голос
/ 13 февраля 2020

Доступные настройки выравнивания заголовка для Altair / Vega-Lite перечислены здесь: https://vega.github.io/vega-lite/docs/title.html#params

Самая близкая вещь к тому, что вы хотите установить anchor='start' в конфигурации заголовка :

import altair as alt
from vega_datasets import data
cars = data.cars()

alt.Chart(cars).mark_bar().encode(
  x=alt.X('Miles_per_Gallon', bin=True),
  y='count()',
).properties(
    title='A bar chart'
).configure_title(
    anchor='start'
)

enter image description here

К сожалению, в схеме Vega-Lite нет способа более точно контролировать выравнивание, чем это. Если это важно для использования Altair / Vega-Lite, я бы предложил открыть запрос Vega-Lite .

...