如何在R中设置高图全局选项

时间:2014-08-12 14:05:23

标签: r highcharts rcharts r-highcharter

我在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显示。

3 个答案:

答案 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.langhighcharter.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)