2

我使用带有包 svgPanZoom、svglite、ggplot2 和闪亮的 R 绘制图片。但是,它可以在 Rstudio 上正确显示,但不能在 Web 上显示。有什么办法可以解决吗?请运行以下代码以获取详细信息。

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

data<-data.frame(x=1:50,y=1:50)
x_position<-1:50
y_position<-1:50
ui <- pageWithSidebar(
  headerPanel(""),
  sidebarPanel(),
  mainPanel(

    column(width=12,svgPanZoomOutput(outputId = "main_plot",width=600,height=450))

))

server = shinyServer(function(input, output) {
  output$main_plot <- renderSvgPanZoom({
    p <- ggplot(data, aes(x = x, y = y)) + geom_point()

    svgPanZoom(
      svglite:::inlineSVG(show(p))
      , controlIconsEnabled = T)
  })
})

shinyApp(ui,server)

R工作室: 在此处输入图像描述

网站: 在此处输入图像描述

4

2 回答 2

0

最后,我尝试了“SVGAnnotation”包,幸运地解决了这个问题。

于 2018-05-03T09:27:36.673 回答
0

我有一个类似的问题,并且很容易解决。以下是 ui.R 的片段:

svgPanZoomOutput(outputId = "betaPlot", height = "800px")

和服务器.R

p = ggplot(blah blah)

    svgPanZoom(
  svglite::stringSVG(print(p), standalone = F),
  controlIconsEnabled = T, viewBox = FALSE
)

外部浏览器需要 viewBox = FALSE,并且需要在 ui.R 中调整图形的高度,否则控件不会显示。

加载库(svglite)和库(svgPanZoom),显然

好吧,无论如何它对我有用

于 2019-01-31T09:54:54.913 回答