如何在 R 中设置 highchart 全局选项
Posted
技术标签:
【中文标题】如何在 R 中设置 highchart 全局选项【英文标题】:How to set highchart global options IN R 【发布时间】:2014-10-05 15:30:07 【问题描述】:我在 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 显示。
【问题讨论】:
您是否使用了未命名的 R 包? @SebastianBochan 我已经更新了代码。感谢您的宝贵时间。 @BondedDust 我正在使用 rCharts 包 【参考方案1】:从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)
除了更改小数点外,SI 前缀(“k”、“M”、“G”等)通过将 numericSymbols 设置为 null 来关闭,参见Replacing/removing the metric notations like thousands "k" abbreviation。
【讨论】:
【参考方案2】:可以访问 highcharter 选项,但它们是在列表元素highcharter.options
下的标准 R 选项中设置的。不直接给highchart,在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
部分。
【讨论】:
【参考方案3】:首先,您必须将useUTC
标志切换为FALSE
。您可以根据需要设置timezoneOffset
并保存选项。
global <- getOption("highcharter.global")
global$useUTC <- FALSE
global$timezoneOffset <- -300
options(highcharter.global = global)
为了更好地理解,请务必查看全局:
str(global)
【讨论】:
以上是关于如何在 R 中设置 highchart 全局选项的主要内容,如果未能解决你的问题,请参考以下文章