Пользовательский текст метки в Vega Chart - PullRequest
0 голосов
/ 19 апреля 2019

Очень простой вопрос: у меня есть график Vega, и для оси X я хочу показать «low» и «high» вместо 0 и 1 (которые являются минимальными и максимальными значениями для домена).

Итак, моя шкала х выглядит так:

{
   'name': 'xscale',
   'type': 'linear',
   'domain': [0, 1],
   'range': 'width',
   'round': true,
   'zero': true,
   'nice': true
 }

, а моя ось выглядит так:

{
  'orient': 'bottom',
  'scale': 'xscale',
  'tickCount': 1,
  'title': 'Prices
}

В документации видно, что я могу настроитьмаркирует текст, но мне не понятно как.Спасибо!

1 Ответ

0 голосов
/ 25 апреля 2019

Так что в принципе решение очень простое.Я получил некоторое вдохновение из этого сообщения на github: https://github.com/vega/vega/issues/714

Вам просто нужно иметь троичное выражение, которое бы возвращало результат текста надписей.Конечно, это работает только для оси с 2 значениями, min и max.

'encode': {
          'labels': {
            'update': {
              'fill': { 'value': '#FF0000' },
              'align': { 'value': 'left' },
              'baseline': { 'value': 'middle' },
              'dx': { 'value': 0 },
              'dy': { 'value': 12 },
              'text': { 'signal': 'datum.value === 1 ? "High" : "Low"' }
            }
          }
        }

Вот и все.Теперь вместо 1 метка будет иметь значение «High», а вместо 0 метка будет «Low».

...