R 使用ggplot2和导航滑块打印大数据

R 使用ggplot2和导航滑块打印大数据,r,ggplot2,highstock,plotly,R,Ggplot2,Highstock,Plotly,我正试图用Highstock JS从R以烛台的形式绘制时间序列金融OHLC数据。我正在使用rcharts软件包。但是,显示该图需要大量时间(10000支蜡烛大约需要5分钟) 我也尝试过使用ggplot2来构建蜡烛,为了交互性,我使用了plotly。虽然ggplot2渲染绘图非常快,但当我使用plotly时,它会变慢 我基本上需要工具提示和水平滚动条在我的图表 我添加了一个使用ggplot2和scroll创建的示例代码 用户界面 服务器.R 库(ggplot2) 图书馆(闪亮) 图书馆(绘本) s

我正试图用Highstock JS从R以烛台的形式绘制时间序列金融OHLC数据。我正在使用rcharts软件包。但是,显示该图需要大量时间(10000支蜡烛大约需要5分钟)

我也尝试过使用ggplot2来构建蜡烛,为了交互性,我使用了plotly。虽然ggplot2渲染绘图非常快,但当我使用plotly时,它会变慢

我基本上需要工具提示和水平滚动条在我的图表

我添加了一个使用ggplot2和scroll创建的示例代码

用户界面 服务器.R
库(ggplot2)
图书馆(闪亮)
图书馆(绘本)
shinyServer(功能(输入、输出){
种子(1)

你能提供一个可以工作的JS提琴吗?对不起,阿桑,我对这个很陌生,不知道如何上传JS提琴。我无法在Highstock中获得导出按钮。我在R中使用rcharts包,它使用Highcharts API,数据从那里发送。让我试着找出如何在JS提琴中上传相同的内容并返回。Hi@Mrudu洛杉矶,欢迎来到stackoverflow(SO)!我认为Ahsan要求提供一个最小的可复制示例来回答您的问题。如果您提供一些我们可以使用的东西来向您展示如何解决您的问题,我们更有可能帮助您。您可以看看如何在R中制作一个伟大的可复制示例。感谢@EricFaile建议。我现在添加了一个示例代码来理解我的要求。为什么10k点要花这么长时间才能加载到Highstock?即使禁用数据分组,图表运行也非常平稳-你能提供一个工作的JS提琴吗?对不起,阿桑,我对这个很陌生,不知道如何上传JS提琴。我无法获得exHighstock中的port按钮。我在R中使用rcharts包,它使用Highcharts API,数据从那里发送。让我试着弄清楚如何在JS Fiddle中上传相同的内容并返回。Hi@Mrudula,欢迎使用stackoverflow(SO)!我认为Ahsan要求提供一个最小的可复制示例来回答您的问题。如果您提供一些我们可以使用的东西来向您展示如何解决您的问题,我们更有可能帮助您。您可以看看如何在R中制作一个伟大的可复制示例。感谢@EricFaile建议。我现在添加了一个示例代码,以了解我的要求。为什么在Highstock中加载10k点要花这么长时间?即使禁用数据分组,图表运行也非常平稳-
library(shiny)

shinyUI(fluidPage(
  
  # Application title
  titlePanel(NULL),
  
  # Sidebar with a slider input for scrolling
  sidebarLayout(
    sidebarPanel(
      sliderInput("integer", "Scroll parameter:", 
                  min=51, max=2000, value=100)
    ),
    
    mainPanel(
      plotOutput("plot",
                 hover = hoverOpts(
                   id = "plot_hover")
      )
    )),
      
    
    fluidRow(
      column(width = 3,
             verbatimTextOutput("hover_info")
      )
  
)))
library(ggplot2)
library(shiny)
library(plotly)

shinyServer(function(input, output) {
  
  set.seed(1)
  s <- sample(seq(from = 1, to = 50, by = 1), size = 2000, replace = TRUE)
  data <- data.frame(x = 1:length(s), y = s)
  
  df <- reactive({
    
    df <- data[(input$integer - 50):input$integer,] # selecting only 50 rows of data frame and generating the plot
    return(df)
  })
  
  
  output$plot <- renderPlot({
    
    
    temp <- df()
    p <- ggplot(data = temp, mapping = aes(x=x,y=y))
    p <- p+geom_line()
    print(p)
   # g <- ggplotly(p) # for conversion to plotly
   # print(g)

  })
  
  output$hover_info <- renderPrint({
    cat("input$plot_hover:\n")
    str(input$plot_hover)
  })
})