如何在echarts4r日历中设置本地月份名称

问题描述

是否可以将echarts4r日历中日期的语言设置为当地时间?

这是获取冰岛语缩写月份名称方法,但是在echarts4r日历中,该名称仍为英语。

Sys.setlocale("LC_TIME","Icelandic")
format(Sys.time(),'%d %b %Y')

我也尝试过Sys.setenv(LANGUAGE = "is")

这是我正在使用的示例日历:

dates <- seq.Date(as.Date("2017-01-01"),as.Date("2018-12-31"),by = "day")
values <- rnorm(length(dates),20,6)
year <- data.frame(date = dates,values = values)
year %>% 
  e_charts(date) %>% 
  e_calendar(range = "2018") %>% 
  e_heatmap(values,coord_system = "calendar") %>% 
  e_visual_map(max = 30) %>% 
  e_title("Calendar","Heatmap")

解决方法

事实上在echarts中有一个选项:

https://echarts.apache.org/en/option.html#calendar.monthLabel.nameMap

您可以在 nameMap 中为日和月标签指定语言。

我已经在 R for french 中尝试过,在 monthLabel 参数列表中使用以下选项:nameMap = 'fr' 但它似乎不起作用。

这是一个在法语中使用 lubridate 功能月对我有用的解决方案。 (对于我将星期一作为第一天并手动设置法语日缩写的日期标签几乎相同)。

我添加了一个格式化程序,用于在 e_tooltip 中悬停时打印日期和值。

library(lubridate)
library(dplyr,warn.conflicts = FALSE)
library(echarts4r)

temp_data %>% 
  mutate(value_to_plot = ifelse(value_to_plot == 0,NA,value_to_plot)) %>% 
  e_charts(DATE_J) %>% 
  e_calendar(range = "2020",top="60",left = 150,dayLabel = list(
                        firstDay=1,nameMap = c('Di','Lu','Ma','Me','Je','Ve','Sa')),monthLabel = list(
                          nameMap = month(1:12,label = TRUE,abbr = FALSE))) %>%
  e_heatmap(value_to_plot,coord_system = "calendar") %>% 
   e_visual_map(min = 1L,max = max(temp_data$value_to_plot),top = 130,left = 15) %>% 
  e_tooltip(formatter = htmlwidgets::JS("
                                    function(params){
                                    return(params.value[0] + ': ' + params.value[1])
                                    }
                                    ")) %>% 
            e_title("Title","Subtitle")

echarts with french date labels

纪尧姆