Dygraph 图例时间-日期格式更改为包括星期几

h.l*_*l.m 6 r dygraphs shiny

您好,我正在使用 Rdygraphs包,并且希望能够更改图例时间日期格式以包括星期几(即“%a”)

我已经看过了dyOptionsdyLegend但看不到任何可以帮助我解决这个问题的东西......

下面是一个简单的例子......但理想情况下希望它在闪亮的应用程序中......

library(dygraphs)
library(xts)
dygraph(xts(rnorm(100),Sys.time()+seq(100)),main='random_graph')
Run Code Online (Sandbox Code Playgroud)

为了提供一些额外的细节......我希望轴和图例的格式都为:“Wed 22 Jan 2020 08:35:05”。

All*_*ron 2

可能的。您需要提供Javascript 函数axisLabelFormatter的参数dygraphs::dyAxis,该函数接受日期参数并返回基于该日期的字符串。该函数只是作为字符串传入。

我不确定您是否可以访问 dygraph 导入的任何 javascript 库,因此为了简单起见,我包含了一个普通的 javascript 片段,它以我认为您想要的格式给出了日期。它可以使用 javascript 函数轻松扩展或getYear() getFullYear() getHours() getMinutes()修改getSeconds()

library(dygraphs)
library(xts)

my_js <- 'function(d)
          {
            var d = new Date(d.getTime() + 7200*1000);
            var weekday = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
            var months  = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
                           "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
            var result = ""
            result += weekday[d.getDay()] + " " + d.getDate()
            result += " " + months[d.getMonth()] + " " + d.getFullYear();
            return result;
          }'

set.seed(69)
dg <- dygraph(xts(rnorm(100), Sys.time() + seq(100)*10000), main = 'random_graph')
dyAxis(dg, name = "x", axisLabelFormatter = my_js)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述