Формат текста mark_text в Альтаире - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь создать диаграмму в соответствии с примером Multi-Line Tooltip , но я хотел бы отформатировать строку, которая будет напечатана, чтобы в конце был добавлен текст,Я пытаюсь изменить эту часть:

# Draw text labels near the points, and highlight based on selection
text = line.mark_text(align='left', dx=5, dy=-5).encode(
    text=alt.condition(nearest, 'y:Q', alt.value(' '))
)

В частности, вместо 'y: Q' я хочу что-то вроде 'y: Q' + "суффикс".Я пытался сделать что-то вроде этого:

# Draw text labels near the points, and highlight based on selection
text = line.mark_text(align='left', dx=5, dy=-5).encode(
    text=alt.condition(nearest, 'y:Q', alt.value(' '), format=".2f inches")
)

В качестве альтернативы, я попытался:

# Draw text labels near the points, and highlight based on selection
y_fld = 'y'
text = line.mark_text(align='left', dx=5, dy=-5).encode(
    text=alt.condition(nearest, f"{y_fld:.2f} inches", alt.value(' '))
)

Я думаю, я понимаю, почему они не работают, но я не могувыяснить, как перехватить значение y и передать его через строку формата.Спасибо!

1 Ответ

0 голосов
/ 26 ноября 2018

Я думаю, что самый простой способ сделать это - вычислить новое поле, используя transform_calculate для вычисления требуемой метки.

Используя пример из документации, я бы изменил текстовую диаграмму следующим образом:

text = line.mark_text(align='left', dx=5, dy=-5).encode(
    text=alt.condition(nearest, 'label:N', alt.value(' '))
).transform_calculate(label='datum.y + " inches"')

Что приводит к этому графику: enter image description here

Если вы хотите больше контроля, вы можете изменить набор данных с пандами заранее.Обязательно установите тип в Nominal (а не Quantitative), иначе вы получите NaN s во всплывающих подсказках.

...