Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在绘制数千点时提高rCharts性能_R_Highcharts_Shiny_Rcharts - Fatal编程技术网

在绘制数千点时提高rCharts性能

在绘制数千点时提高rCharts性能,r,highcharts,shiny,rcharts,R,Highcharts,Shiny,Rcharts,我试图用rCharts包绘制数千个点,但我发现使用默认参数有点慢。我尝试将turboThresold参数设置为0,但没有帮助 以下是性能表: 绘制100点:00.05秒 标绘1000点:00.54秒 绘制10000点:17.00秒 有人能提高这段代码的性能吗 library(shiny) library(rCharts) runApp( # User interface with 1 select box, 1 graph and 1 timer list(ui = pageWith

我试图用rCharts包绘制数千个点,但我发现使用默认参数有点慢。我尝试将turboThresold参数设置为0,但没有帮助

以下是性能表:

  • 绘制100点:00.05秒
  • 标绘1000点:00.54秒
  • 绘制10000点:17.00秒
有人能提高这段代码的性能吗

library(shiny)
library(rCharts)
runApp(
  # User interface with 1 select box, 1 graph and 1 timer
  list(ui = pageWithSidebar(  
    headerPanel(""),  
    sidebarPanel( 
      selectInput("value",NULL,choices=c(100,1000,10000), selected = 100)
    ),
    mainPanel(       
      showOutput("plot", "highcharts"),
      textOutput("timer")
    )   
  ), 
  # server side
  server = function(input, output){
    values<-reactiveValues()
    values$timer <- NULL
    # generating highcharts plot
    output$plot <- renderChart2({
      x <- 1:input$value
      df <- data.frame(x, x^2)
      names(df) <- c("x","xpower2")
      values$timer <- Sys.time()
      plot <- Highcharts$new()
      plot$series(
        data = toJSONArray2(df, json = F, names = F),
        name = "xpower2",
        type = "line"
      )
      plot$plotOptions(series=list(turboThreshold=0))
      return(plot)
    })
    # calculating time 
    output$timer <- renderText({
      input$value
      isolate({
        values$timer <- Sys.time() - values$timer
        return(paste("Time elapsed :", round(values$timer,3) , "seconds"))
      })
    })
  }
  )
)
库(闪亮)
图书馆(艺术)
runApp(
#带有1个选择框、1个图形和1个计时器的用户界面
列表(ui=pageWithSidebar(
头盘(“”),
侧边栏(
选择输入(“值”,空,选择=c(100100010000),选择=100)
),
主面板(
显示输出(“绘图”、“高图”),
文本输出(“计时器”)
)   
), 
#服务器端
服务器=功能(输入、输出){

值通常,我建议使用任何浏览器图形包向浏览器发送不超过3000个点。选项是无止境的,但取决于数据。除此之外,我无法使用
rCharts
加快速度,但使用
ggvis
就可以了

library(shiny);library(ggvis)
runApp(
  list(ui = fluidPage(
  titlePanel('ggvis speed example'),  
  sidebarLayout(  
    sidebarPanel( 
      selectInput('points','Points To Plot',
                  choices=c(100,1000,10000,100000), selected = 1000)
    ),
    mainPanel(       
      ggvisOutput('ggvis')
    )   
  )), 
  server = function(input, output){
    reactive({
        1:input$points %>%             
        data.frame('x'=.,'y'=.^2) %>%
        ggvis(~x, ~y) %>% 
        layer_points() %>%
        add_axis("y", title_offset = 70) %>%
        add_tooltip(function(df) HTML(paste0('x: ',df$x,'<br>y: ',df$y)))
    }) %>% bind_shiny('ggvis')
  }
  )
)
库(闪亮);库(ggvis)
runApp(
列表(ui=fluidPage)(
titlePanel(“ggvis速度示例”),
侧边栏布局(
侧边栏(
选择输入('points','points To Plot',
选项=c(100100001000000),选中=1000)
),
主面板(
ggvis输出(“ggvis”)
)   
)), 
服务器=功能(输入、输出){
反应性({
1:输入$points%>%
数据帧('x'=,'y'=.^2)%>%
ggvis(~x,~y)%>%
图层_点()%>%
添加轴(“y”,标题偏移=70)%>%
添加工具提示(函数(df)HTML(粘贴0('x:',df$x',
y:',df$y))) })%%>%bind_('ggvis') } ) )
这些命令也没有帮助:plot$plotOptions(series=list(animation=FALSE,enableMouseTracking=FALSE))尝试禁用阴影/动画/markersHi Sebastian。遗憾的是没有任何改进。您是否尝试使用原生Highcharts js而不是rCharts?然后比较结果?遗憾的是,我没有用我的R Shining应用程序在原生highchart中创建图表。但感谢您的评论,我找到了rHighcharts包,它似乎有更好的p性能,时间除以5。谢谢:)。如果你有任何关于R中原生highchart的例子,那就太好了。由于某些原因,我不能使用“ggvis”包装。我想我必须找到另一种方式来显示我的系列。我正在考虑将我的大系列样品分成小系列,选择正确的方法使其具有相同的外观。热图?我确信有一些更清晰的方式来显示许多点,这取决于目的。在我的情况下,我不是在处理时间序列。如果可以,也许可以尝试一下
dygraphs