R svgPanZoom в рамках глянцевого приложения отображается по-разному в Интернете и Rstudio - PullRequest
0 голосов
/ 29 апреля 2018

Я рисую картинку, используя R с пакетами svgPanZoom, svglite, ggplot2 и глянцевый. Тем не менее, он может правильно отображаться в Rstudio, но не в Интернете. Есть ли варианты, чтобы решить это? Пожалуйста, запустите следующий код для деталей.

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 studio: enter image description here

Веб-сайт: enter image description here

Ответы [ 2 ]

0 голосов
/ 31 января 2019

У меня была похожая проблема, и я ее очень легко исправил. Вот фрагменты из 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), очевидно

Ну, у меня все равно получилось

0 голосов
/ 03 мая 2018

Наконец, я пробую пакет «SVGAnnotation» и, к счастью, решил проблему.

...