我在javascript中看到了很多例子,但我找不到在R
中做到这一点的例子以下是api链接:http://api.highcharts.com/highcharts#global
我正在设置" timezoneOffset"我尝试了很多不同的方法。
当我在R中执行此操作时:highChart$global(timezoneOffset=-300)
我没有收到任何警告或错误,但它没有工作。
非常感谢您的帮助!
这是一段代码:
library(rCharts)
highChart <- Highcharts$new()
highChart$global(timezoneOffset=-300)
highChart$chart(zoomType = "xy")
highChart$exporting(enabled = T)
highChart$xAxis(type="datetime",list( title = list(text = "Time")))
highChart$yAxis(list
(
list(title = list(text = "Variance"))
))
highChart$series(data=list(c(x=1407795845000,y=1),c(x=1407795846000,y=2),c(x=1407795847000,y=3)))
highChart
正如您所看到的,当我运行这段代码时,timezoneOffset无效,并且时间仍以GMT显示。
答案 0 :(得分:2)
可以访问highcharter选项,但它们是在列表元素highcharter.options
下的标准R选项中设置的。它们没有直接提供给高图,而在highchart()
内,有代码行opts <- getOption("highcharter.options", list())
。
我认为除了获取选项之外还有另一种方式,更改您需要更改的选项,然后再添加选项再次设置选项。
以下是一个简单的说明:
library(highcharter)
# normal highchart
highchart() %>%
hc_add_serie_labels_values(1:901, seq(1, 10, 0.01))
opts <- getOption("highcharter.options")
opts$lang$decimalPoint <- "."
options(highcharter.options = opts)
# now with "," instead of "." (confirm in tooltip)
highchart() %>%
hc_add_serie_labels_values(1:901, seq(1, 10, 0.01))
当然,在您的情况下,您需要设置$global$timezoneOffset
部分。
答案 1 :(得分:2)
从highcharter
版本0.5.0开始,似乎选项highcharter.options
不再存在,但有几个单独的选项,例如highcharter.lang
,highcharter.global
等。所以以下方法有效:
lang <- getOption("highcharter.lang")
lang$decimalPoint <- ","
lang$numericSymbols <- highcharter::JS("null") # optional: remove the SI prefixes
options(highcharter.lang = lang)
除了更改小数点之外,通过将numericSymbols设置为null来关闭SI前缀(“k”,“M”,“G”等),请参阅Replacing/removing the metric notations like thousands "k" abbreviation。
答案 2 :(得分:0)
首先,您必须将useUTC
标志切换为FALSE
。比起您可以随意设置timezoneOffset
并保存回来的选项而言。
global <- getOption("highcharter.global")
global$useUTC <- FALSE
global$timezoneOffset <- -300
options(highcharter.global = global)
为更好地理解,请确保您了解全局:
str(global)