【问题标题】:svglite, svgPanZoom not able to plot in R shinysvglite,svgPanZoom 无法在 R 中绘制
【发布时间】:2020-12-10 16:32:04
【问题描述】:

根据How to display scatter plot with R Packages:svgPanZoom? 的帖子,我尝试在 R 闪亮中复制可缩放的图。有人可以帮我写代码吗?为什么我不能重现这段代码?

library(shiny)
library(svglite)
library(svgPanZoom)


# Define UI ----
ui <- shinyUI(bootstrapPage(
    # App title ----
  headerPanel("Cyl vtree"),
  
    
 # Main panel for displaying outputs ----
  svgPanZoom(
    svglite:::inlineSVG(
      show(p)
    ),
    controlIconsEnabled = T
  )
  
))

# Define server logic to plot ----
server <- function(input, output) {
  output$main_plot <- renderSvgPanZoom({
    p <- ggplot(mtcars, aes(x = cyl, y = mpg)) + geom_point()
    svgPanZoom(p, controlIconsEnabled = T)
  })
}

shinyApp(ui, server)

【问题讨论】:

    标签: r shiny svgpanzoom svglite


    【解决方案1】:
    1. 您的 UI 中缺少 svgPanZoomOutput 以将 svgpanzoom 绑定到闪亮
    2. 您在 UI 中使用了 svgPanZoom,它只属于服务器中的 renderSvgPanZoom
    3. 它以任何一种方式工作 - 使用 this solution 或只是来自 ?svgPanZoom 的基本示例
    library(shiny)
    library(svglite)
    library(svgPanZoom)
    library(ggplot2)
    library(gridSVG)
    
    # Define UI ----
    ui <- shinyUI(bootstrapPage(
      # App title ----
      headerPanel("Cyl vtree"),
      
      
      # Main panel for displaying outputs ----
      svgPanZoomOutput(outputId = "main_plot")
      
      
    ))
    
    # Define server logic to plot ----
    server <- function(input, output) {
      output$main_plot <- renderSvgPanZoom({
        p <- ggplot(mtcars, aes(x = cyl, y = mpg)) + geom_point()
    
        svgPanZoom(p, controlIconsEnabled = T)
      })
    }
    
    shinyApp(ui, server)
    

    【讨论】:

    • 谢谢托马斯。在尝试了您的解决方案后,我再次运行了一条错误消息:“为了使用 ggplot2 和 lattice 获得最佳结果,请安装 gridSVG 警告:错误:'' 在当前工作目录中不存在('F:/R_Project/...)” .然后我安装了gridSVG并放置了库(gridSVG)并且一切正常。再次感谢你。我一步一步地进入它。
    • 感谢您的关注,我的答案也相应地改变了
    猜你喜欢
    • 2018-01-14
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    • 2019-11-27
    • 2018-02-19
    相关资源
    最近更新 更多