【问题标题】:R Shiny: setExtremes in Highcharts (rCharts) on page loadR Shiny:页面加载时在 Highcharts (rCharts) 中的 setExtremes
【发布时间】:2015-12-04 06:14:08
【问题描述】:

我有一个闪亮的应用程序,它使用 rCharts 库来创建 Highcharts 图表。当应用首次启动时,我希望将应用放大到特定区域。

Highcharts 方法是 setExtremes() http://api.highcharts.com/highcharts#Axis.setExtremes

以下是可以在交互式 R 中运行的最小示例:

library(shiny)
library(rCharts)

runApp(list(
  ui = pageWithSidebar(
    headerPanel("title"),
    sidebarPanel('sidebar'),
    mainPanel(showOutput("testPlot", "Highcharts"))
  ),
  server = function(input, output, session) {
    output$testPlot <- renderChart2({
      hc <- Highcharts$new()
      hc$xAxis(categories=c('Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su',
                            'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'))
      hc$series(data=c(7, 1, 4, 2.5, 3.25, 2.875, 3.0625, 3, 3, 3, 3, 3, 3, 3))
      setX <- "#! function() {
                 var cht = this;
                 var chtXAxis = this.xAxis[0];
                 setTimeout(function() {
                   console.log(chtXAxis.getExtremes().max); // correctly shows 13 in the console
                   chtXAxis.setExtremes(2, 10);
                   console.log(chtXAxis.getExtremes().max); // nothing in the console
                   cht.showResetZoom();
                 }, 2000)
               } !#"
      hc$chart(type="spline", zoomType='xy', events=list(load=setX))

      hc$set(domID="testPlot")
      return(hc)
    })
  }
))

在控制台可以看到getExtremes()方法成功了,但是setExtremes()方法不行。我不知道为什么。

谁能帮助解决这个问题,或者就如何更好地在加载时设置极端提供建议?

【问题讨论】:

  • 它对我有用,使用 Chrome 和 Firefox,我在控制台中看到 13 和 10。也许更新 rCharts。
  • 哎呀,好主意。它现在也适用于我。更新软件包。这就是教训。非常感谢您试用并回答。

标签: javascript r highcharts shiny rcharts


【解决方案1】:

Victorp 的回复表明我的代码基本上没有任何问题,但 rCharts 确实过时了。如果您的 rCharts 版本比今天更新,上面的代码应该可以工作,也许还有一些旧版本。我不知道我正在开发哪个版本,但它应该有几个月的历史了。

感谢维克多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 2021-01-08
    相关资源
    最近更新 更多