Javascript highcharter:捕获库存图中当前选择的最小和最大日期

Javascript highcharter:捕获库存图中当前选择的最小和最大日期,javascript,r,highcharts,shiny,r-highcharter,Javascript,R,Highcharts,Shiny,R Highcharter,我正在开发一个闪亮的应用程序,它使用highcharterpkg进行数据访问。我想同步2个highchart绘图,这样当我更改一个绘图中的日期范围时(使用绘图底部的范围选择器,而不是范围选择器按钮),第二个绘图也会应用它们。我读过关于afterSetExtremes()JS函数的内容,该函数捕获了中建议的最小和最大日期(示例),但我不确定如何将此JS代码应用于我的R/R代码 下面是两个应同步的highchart图的简单示例 library(shiny) library(highcharter)

我正在开发一个闪亮的应用程序,它使用
highcharter
pkg进行数据访问。我想同步2个
highchart
绘图,这样当我更改一个绘图中的日期范围时(使用绘图底部的范围选择器,而不是范围选择器按钮),第二个绘图也会应用它们。我读过关于
afterSetExtremes()
JS函数的内容,该函数捕获了中建议的最小和最大日期(示例),但我不确定如何将此JS代码应用于我的R/R代码

下面是两个应同步的
highchart
图的简单示例

library(shiny)
library(highcharter)


data(fdeaths)
data(mdeaths)


ui <- fluidPage(
  highchartOutput('f_plot'),
  highchartOutput('m_plot')
)


server <- function(input, output, session) {

  output$f_plot <- renderHighchart(
    highchart(type = 'stock') %>% 
      hc_add_series(fdeaths)

  )

  output$m_plot <- renderHighchart(
    highchart(type = 'stock') %>% 
      hc_add_series(mdeaths) 
  )


}


shinyApp(ui, server)
库(闪亮)
图书馆(高级特许)
数据(fdeaths)
数据(mdeaths)

ui您可以使用xAxis.events.afterSetExtremes事件启动函数,该函数将在每次更改第一个图表的极值时更新第二个图表的极值。当然,当拖动第二个图表时,您可以调整此逻辑以更改第一个图表的极端值,或者对大量图表执行相同操作

这是一个如何在纯JavaScript中执行此操作的示例:

这里有一个R实现:

library(shiny)
library(highcharter)


data(fdeaths)
data(mdeaths)


ui <- fluidPage(
  highchartOutput('f_plot'),
  highchartOutput('m_plot')
)


server <- function(input, output, session) {

  output$f_plot <- renderHighchart(
    highchart(type = 'stock') %>% 
      hc_add_series(fdeaths) %>% 
      hc_xAxis(
        events = list(
          afterSetExtremes = JS("function(e) {
            Highcharts.charts[0].xAxis[0].setExtremes(e.min, e.max);
          }")
        )
      )
    )

  output$m_plot <- renderHighchart(
    highchart(type = 'stock') %>% 
      hc_add_series(mdeaths) %>% 
      hc_xAxis(
        events = list(
          afterSetExtremes = JS("function(e) {
            Highcharts.charts[1].xAxis[0].setExtremes(e.min, e.max);
          }")
        )
      )
  )

}


shinyApp(ui, server)
库(闪亮)
图书馆(高级特许)
数据(fdeaths)
数据(mdeaths)
ui%
hc_xAxis(
事件=列表(
afterSetExtremes=JS(“函数(e)){
Highcharts.charts[1].xAxis[0].SetExtrems(e.min,e.max);
}")
)
)
)
}
shinyApp(用户界面、服务器)
请注意,Shiny略有不同,并更改了图表的顺序,因此可以在此处找到第二个图表实例:Highcharts.charts[0],但此处的第一个实例:Highcharts.charts[1] 我想知道如果我们有更多的图表,订单会是多少

API参考:

hej-hej!:)我的想法是从第一个图中捕获日期范围,将其保存为闪亮的反应对象,以便第二个图可以访问它。上述代码是否可以像中的示例那样在
hc\u plotOptions
中工作?如果是这样,那么我只需要了解如何使用JS.R中的
hc\u rangeSelector()
设置定义的范围。。希望它有意义!事实上,我成功了!你的链接让我深入研究,当我测试一些东西时,我注意到。。。图表[1]不是第二个图表,而是第一个图表。第二个图表是Highcharts。图表[0]。。。欢迎来到闪亮(???)。我将很快编辑我的答案。波兹德罗维尼亚·克拉科瓦;)呜呜呜!干得好,期待看到您对解决方案的看法:)pozdrawiam z Londynu!这个解决方案成功了吗?我很期待看到你是如何让它工作的!当然,它很容易实现;)我会在一天结束前给你答案!