【发布时间】:2015-03-12 12:36:23
【问题描述】:
我正在尝试使用 rCharts 包绘制数千个点,但我发现使用默认参数有点慢。我尝试将 turboThresold 参数设置为 0,但没有帮助。
这是性能表:
- 绘制 100 个点:00.05 秒
- 绘制 1000 个点:00.54 秒
- 绘制 10000 个点 : 17.00 s
任何人都可以提高这段代码的性能吗?
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"))
})
})
}
)
)
感谢您的帮助, 马特
【问题讨论】:
-
这些命令也无济于事:plot$plotOptions(series=list(animation = FALSE,enableMouseTracking =FALSE))
-
尝试禁用阴影/动画/标记
-
嗨塞巴斯蒂安。遗憾的是没有改善。
-
您是否尝试过原生 Highcharts js,而不是 rCharts?然后比较结果?
-
不幸的是,我没能用我的 R Shiny 应用程序在原生 highchart 中创建图表。但是多亏了你的评论,我找到了 rHighcharts 包,它似乎有更好的性能,时间除以 5。所以谢谢你:)。如果你有任何 R 语言原生 highchart 的例子,无论如何都会很棒。
标签: r highcharts shiny rcharts