0

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.

Joe
  • 8,073
  • 1
  • 52
  • 58

3 Answers3

3

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.

sgrubsmyon
  • 1,077
  • 14
  • 22
2

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.

K. Rohde
  • 9,439
  • 1
  • 31
  • 51
1

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)
sdittmar
  • 365
  • 2
  • 14