Как установить метки осей времени (галочки) на основе немецкой локали

Как правильно установить метки осей времени на основе новой (немецкой) локали?

Я хотел бы использовать его с vega lite API.

Вот что я пробовал:

vl1 = {
  embed.vega.timeFormatLocale(locale); // show dates in German 
  embed.vega.formatLocale(locale); // show numbers with German groupings/ separators
  const plot = vl.markBar()
    .config({padding: {"left": 5, "top": 10, "right": 50, "bottom": 40}}) // now tooltip will not be clipped
    .data(cdata_lk_vl)
    .encode(
      vl.x().fieldT('Datum').axis({"format": "%d. %B"}),
      vl.y().fieldQ('infizierte Personen'),
      vl.tooltip([ 
        {"field": "Datum", "type": "temporal", "format": "%d. %B"}, // now date will be shown formatted
        {"field": 'infizierte Personen', "type": "quantitative", "format": ","},          
        ]))
  
   return plot.render();
}
  1. Я создал наблюдаемое: https://observablehq.com/@ee2dev/coronavirus-in-bayern-teil-2 с ячейкой vl1, показывающей диаграмму, которую я хотел отразить в форматах локали. На основе предложения наблюдаемого форума https://talk.observablehq.com/t/change-the-locale-for-vega-lite/3010 Я реализую это:

Кажется, это работает - иногда!?. За последние два месяца были такие дни, как сегодня, когда формат переключался обратно на стандартный US_EN.

введите здесь описание изображения

  1. Связанный с этим вопрос здесь Как установить локаль показывать время на моем языке? в данном случае не помогает

Мне бы очень хотелось знать, а) как это сделать правильно и б) почему мое решение иногда работает, а иногда нет (без изменения кода)


person ee2Dev    schedule 29.06.2020    source источник


Ответы (1)


Я отправил вам предложение по Observable, но я думаю, что проблема потому что вы устанавливали языковой стандарт для экземпляра vega, полученного от vegaEmbed. Вместо этого есть экземпляр vega непосредственно на vl. Я думаю, что часто, в зависимости от порядка загрузки, это один и тот же экземпляр, но иногда они могут отличаться.

Итак, вы хотите:

  vl.vega.timeFormatLocale(locale); // show dates in German
  vl.vega.formatLocale(locale); // show numbers with German groupings/ separators
person visnu    schedule 17.07.2020
comment
Спасибо большое!! Я добавляю это к моему наблюдаемому вопросу на форуме, чтобы другие тоже могли извлечь из этого пользу (на случай, если они не увидят его здесь. - person ee2Dev; 17.07.2020
comment
Я почти уверен, что это правильный ответ, но, поскольку ваша первоначальная проблема была спорадической, будет трудно узнать наверняка, пока она просто не случится с вами в течение пары недель. :) Это было главное, что выглядело подозрительно. - person visnu; 17.07.2020