R中的Highcharter setExtremes函数

时间:2017-02-14 20:20:25

标签: r highcharts

我试图在与用户按下按钮相对应的时间序列股票图表上设置极值。这是细分:

  1. 用户点击图表顶部的按钮(我已编辑了"所有"," 1M"," 3M"按钮在顶部)

  2. 单击该按钮时,xAxis(2个月)上的自定义区域会被放大。例如,10月1日到12月首先。现在,缩放将转到图表的末尾。

  3. 它与以下链接非常相​​似。

    X Axis Set Extremes

    我现在为该按钮的R代码如下:

    hc_rangeSelector(buttons=list(list(type='month', text='New', count=2)))
    

    这表示我正在寻找一个月间隔缩放,文字是"新",它显示2个月。我已经看到setExtremes是我正在寻找的功能,但我还没有看到它是用R实现的。

1 个答案:

答案 0 :(得分:1)

您可以在Highcharter中的chart.events.load选项中放置JavaScript函数。使用Renderer,您可以添加一个按钮,在点击时使用setExtremes功能。

JSFiddle中的演示(没有Highcharter也没有`R,数据不同,但按钮的功能是相同的):http://jsfiddle.net/e69eLm6q/

R中运行的代码:

library("quantmod")

usdjpy <- getSymbols("USD/JPY", src = "oanda", auto.assign = FALSE)
eurkpw <- getSymbols("EUR/KPW", src = "oanda", auto.assign = FALSE)

hc <- highchart(type = "stock") %>% 
  hc_title(text = "Charting some Symbols") %>% 
  hc_add_series(data = usdjpy, id = "usdjpy", pointInterval = 36000000) %>% 
  hc_add_series(data = eurkpw, id = "eurkpw", pointInterval = 36000000) %>%
  hc_rangeSelector(buttons=list(list(type='month', text='New', count=2))) %>%
  hc_chart(
    events = list(
        load = JS("function(){
            var chart = this;

            chart.renderer.button('do stuff',200, 100)
                .attr({
                    zIndex: 3
                })
                .on('click', function () {
                    chart.xAxis[0].setExtremes(Date.UTC(1970, 4, 1), Date.UTC(1970, 6, 1));
                })
                .add();
        }")
    )
  )

hc