如何在echarts4r上自定义日期格式?

aor9mmx1  于 2023-01-18  发布在  Echarts
关注(0)|答案(1)|浏览(95)

你好,感谢阅读我,我正试图用Echarts4r制作一个时间序列图表,但我想更改轴的日期定制。我目前的代码如下:

library(echarts4r)
library(lubridate)
df <- data.frame(
  date = seq.Date(from = as.Date("2019-01-01"), to = as.Date("2021-05-01"),
                  by = "month"),
  val = rnorm(29, mean = 100, sd = 50)
)
df |> 
  e_charts(date) |> 
  e_line(val)

当前图形如下所示:

但我希望它看起来像这样:

多年来位于另一排。到目前为止我还没有找到一种方法来做到这一点,有没有人知道这是否可能在某种程度上?
再次感谢你的帮助

slmsl1lt

slmsl1lt1#

我已经找到了一个“黑客”,使它的工作:
首先在JS中创建一个格式化程序

yearMonthDate <- htmlwidgets::JS('function (value) {
  var monthShortNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
    "Jul", "Aug", "Sep", "Oc", "Nov", "Dec"
  ];
  
  var d = new Date(value);
  var datestring =  monthShortNames[d.getMonth()] + "  "
  if (d.getMonth()===0) {
    var datestring =  d.getFullYear() + "  " + monthShortNames[d.getMonth()]  + "  "
    
  }
  
  
  return datestring
}')

然后你只需要像这样合并

data %>%
        e_charts(date) %>%
        e_bar(count) %>%
        e_x_axis(
          date, 
          axisPointer = list(show = TRUE),
          axisLabel = list(
            rotate = 45,
            formatter = yearMonthDate
          ))

你会得到这样的结果:

当然,您可以更改它,使其看起来更像您的示例,并添加中断行等。

相关问题