How to set highchart global options IN R

社会主义新天地 提交于 2019-12-01 12:32:45

问题


I see a lot of examples in javascript but I cannot find an example to do it in R

Here is the api link: http://api.highcharts.com/highcharts#global

I am trying to set "timezoneOffset" and I have tried many different ways. When I do this in R: highChart$global(timezoneOffset=-300) I do not get any warning or error, but it's not working.

Thanks a lot for the help!

Here is a piece of code:

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

As you can see, the timezoneOffset is not working when I run this piece of code and the time is still displayed in GMT.


回答1:


The highcharter options can be accessed, but they are set inside the standard R options under the list element highcharter.options. They are not given directly to the highchart, and inside highchart(), there is the code line opts <- getOption("highcharter.options", list()).

I don't think there is another way than just get the options, alter whatever options you need to change and then set the options again with your additions.

The following is a simple illustration:

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))

Of course in your case, you need to set the $global$timezoneOffset part.




回答2:


As of version 0.5.0 of highcharter, it seems the option highcharter.options is not there any more, but there are several separate options, e.g. highcharter.lang, highcharter.global, etc. So the following approach works:

lang <- getOption("highcharter.lang")
lang$decimalPoint <- ","
lang$numericSymbols <- highcharter::JS("null") # optional: remove the SI prefixes
options(highcharter.lang = lang)

In addition to changing the decimal point, the SI prefixes ("k", "M", "G", etc.) are turned off by setting the numericSymbols to null, see Replacing/removing the metric notations like thousands "k" abbreviation.




回答3:


First you have to switch of the useUTC flag to FALSE. Than you can set the timezoneOffset as you wish and save the options back.

global <- getOption("highcharter.global")
global$useUTC <- FALSE
global$timezoneOffset <- -300
options(highcharter.global = global)

For better understanding make sure you take a look at global:

str(global)


来源:https://stackoverflow.com/questions/25266392/how-to-set-highchart-global-options-in-r

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!