Преобразование ggplot2 с ggplotly: ошибки пакетов

Я построил небольшую карту рассеянного экрана в ggplot2 для публикации в блестящем приложении, и все прошло нормально, но я хочу попробовать и сделать ее интерактивной, например, чтобы увидеть значения каждой точки и иметь возможность изменять размер карты по желанию , Я вижу, что существует более простое решение, а не перестройка другой карты в сюжетном режиме, которая использует ggplotly. Проблема в том, что после запуска ggplotly я не могу просматривать карту в RStudio или Shiny, но ошибок не возникает.

Заранее спасибо за помощь, и я извиняюсь, если ответ на это очевиден / прост, но я не могу это понять.

ОБНОВЛЕНИЕ 1: Как сказал А.Сулиман: Кажется, что ggplotly-карта сгенерирована, но может быть просмотрена только в отдельном окне, а не в RStudio viewer. Но он все еще не отображается в приложении.

ОБНОВЛЕНИЕ 2: MLavoie указала, что код, который я предоставил, работает с R версии 3.5.0., Plotly 4.7.1.9000 & ggplot2 2.2.1.9000 (так же как он может просматривать сюжет как в RStudio, так и в Shiny dashboard). В настоящее время я использую R 3.5.1., Plotly 4.8.0 & ggplot2 3.0.0. Чтобы исправить эту проблему, я попытался понизить пакеты до 4.7.1. и 2.2.1. используя CRAN-репозиторий, и он работал в течение короткого времени, но он начал генерировать ошибки, такие как ggplot2, должен использовать dev-версию для ggplotly (установка ее обновила меня до версии 3.0.0.900), и это блестящее обновление pkg нуждается в обновлении. Я также обновил пакеты до версии dev. Я пробовал использовать R версии 3.5.0, но это мешало многим пакетам и порождало ошибки снова. Я вернулся и четвертый с установкой / удалением различных версий пакетов, но ни один из них не работает.

Мой код

для ui.R

library(shinydashboard)
library(shiny)
library(plotly)
library(ggplot2)


dashboardPage(
  dashboardHeader(),
  dashboardSidebar(

    sidebarMenu(
      sidebarSearchForm(textId = "searchbar", buttonId = "searchbtn", label = "Search..."),
      menuItem("Test", tabName="state", icon = icon("dashboard")))
  ),

  dashboardBody(
    tabItems(

      tabItem(tabName="state",
              fluidRow(
                box(title = "Products across the country", width = 12, status = "success", plotlyOutput("map01"))
              )
       )
    )
  )
)

для сервера.R

library(shinydashboard)
library(shiny)
library(plotly)
library(ggplot2)

shinyServer(function(input, output) {

  world_map <- map_data("world")%>%filter(region=="Portugal")

  info = data.frame(read.csv("cities.csv", header = TRUE))

  dput(info)
  structure(list(name = structure(c(4L, 10L, 6L, 15L, 14L, 9L, 
  3L, 7L, 8L, 11L, 18L, 17L, 1L, 16L, 12L, 13L, 2L, 19L, 5L, 20L, 
  21L), .Label = c("Continente ID0912 - Espinho", "Continente ID8234 - 
  Guimaraes", "Continente ID9912 - Braga", "Continente ID9932 - Albufeira", 
  "Jumbo ID2441 - Lisbon", "Minipreco ID1120 - Almada", "Minipreco ID1150 - 
  Cacilhas", 
  "Minipreco ID1212 - Canelas", "Minipreco ID1231 - Beja", "Minipreco ID1332 
  - Alfena", "Minipreco ID5345 - Caparica", "Minipreco ID7772 - Fatima", 
  "Minipreco ID8723 - Gondomar", 
  "Minipreco ID8891 - Aveiro", "Pingodoce ID1002 - Amadora", "Pingodoce 
  ID4228 - Faro", "Pingodoce ID4778 - Cova da Piedade", "Pingodoce ID5426 - 
  Coimbra", "Pingodoce ID7734 - Lagos", "Pingodoce ID7734 - Nazare", 
  "Pingodoce ID9832 - Viana do Castelo"), class = "factor"), products = 
  c(86L, 53L, 77L, 89L, 61L, 65L, 60L, 43L, 72L, 34L, 41L, 88L, 44L, 23L, 
  67L, 87L, 45L, 56L, 19L, 
  87L, 53L), lat = c(37.09, 41.23, 38.68, 38.75, 40.65, 38.02, 
  41.55, 38.68, 41.08, 38.67, 40.22, 38.67, 41.01, 37.03, 39.62, 
  41.15, 41.44, 37.1, 38.72, 39.6, 41.71), long = c(-8.26, -8.52, 
  -9.16, -9.24, -8.66, -7.86, -8.43, -9.14, -8.59, -9.19, -8.43, 
  -9.15, -8.64, -7.94, -8.64, -8.52, -8.3, -8.68, -9.14, -9.06, 
  -8.83)), class = "data.frame", row.names = c(NA, -21L))

  output$map01<- renderPlotly({
    p = info %>% ggplot() + geom_polygon(data=world_map, aes(x=long, y=lat, group=group), fill="grey50", alpha=0.3) + geom_point(aes(x=long, y=lat, colour=products, size=products, group=name), alpha=0.6) + scale_size_continuous(range=c(1,10)) + theme_void() + coord_map() + guides(size=FALSE)
    ggplotly(p, tooltip = c("group","colour"))
  })  

})

Этот код создает карту, если она открыта в отдельном окне, но не отображается в Shiny.

r,ggplot2,plotly,r-package,ggplotly,

0

Ответов: 0

Преобразование ggplot2 с ggplotly: ошибки пакетов

Я построил небольшую карту рассеянного экрана в ggplot2 для публикации в блестящем приложении, и все прошло нормально, но я хочу попробовать и сделать ее интерактивной, например, чтобы увидеть значения каждой точки и иметь возможность изменять размер карты по желанию , Я вижу, что существует более простое решение, а не перестройка другой карты в сюжетном режиме, которая использует ggplotly. Проблема в том, что после запуска ggplotly я не могу просматривать карту в RStudio или Shiny, но ошибок не возникает.

Заранее спасибо за помощь, и я извиняюсь, если ответ на это очевиден / прост, но я не могу это понять.

ОБНОВЛЕНИЕ 1: Как сказал А.Сулиман: Кажется, что ggplotly-карта сгенерирована, но может быть просмотрена только в отдельном окне, а не в RStudio viewer. Но он все еще не отображается в приложении.

ОБНОВЛЕНИЕ 2: MLavoie указала, что код, который я предоставил, работает с R версии 3.5.0., Plotly 4.7.1.9000 & ggplot2 2.2.1.9000 (так же как он может просматривать сюжет как в RStudio, так и в Shiny dashboard). В настоящее время я использую R 3.5.1., Plotly 4.8.0 & ggplot2 3.0.0. Чтобы исправить эту проблему, я попытался понизить пакеты до 4.7.1. и 2.2.1. используя CRAN-репозиторий, и он работал в течение короткого времени, но он начал генерировать ошибки, такие как ggplot2, должен использовать dev-версию для ggplotly (установка ее обновила меня до версии 3.0.0.900), и это блестящее обновление pkg нуждается в обновлении. Я также обновил пакеты до версии dev. Я пробовал использовать R версии 3.5.0, но это мешало многим пакетам и порождало ошибки снова. Я вернулся и четвертый с установкой / удалением различных версий пакетов, но ни один из них не работает.

Мой код

для ui.R

library(shinydashboard)
library(shiny)
library(plotly)
library(ggplot2)


dashboardPage(
  dashboardHeader(),
  dashboardSidebar(

    sidebarMenu(
      sidebarSearchForm(textId = "searchbar", buttonId = "searchbtn", label = "Search..."),
      menuItem("Test", tabName="state", icon = icon("dashboard")))
  ),

  dashboardBody(
    tabItems(

      tabItem(tabName="state",
              fluidRow(
                box(title = "Products across the country", width = 12, status = "success", plotlyOutput("map01"))
              )
       )
    )
  )
)

для сервера.R

library(shinydashboard)
library(shiny)
library(plotly)
library(ggplot2)

shinyServer(function(input, output) {

  world_map <- map_data("world")%>%filter(region=="Portugal")

  info = data.frame(read.csv("cities.csv", header = TRUE))

  dput(info)
  structure(list(name = structure(c(4L, 10L, 6L, 15L, 14L, 9L, 
  3L, 7L, 8L, 11L, 18L, 17L, 1L, 16L, 12L, 13L, 2L, 19L, 5L, 20L, 
  21L), .Label = c("Continente ID0912 - Espinho", "Continente ID8234 - 
  Guimaraes", "Continente ID9912 - Braga", "Continente ID9932 - Albufeira", 
  "Jumbo ID2441 - Lisbon", "Minipreco ID1120 - Almada", "Minipreco ID1150 - 
  Cacilhas", 
  "Minipreco ID1212 - Canelas", "Minipreco ID1231 - Beja", "Minipreco ID1332 
  - Alfena", "Minipreco ID5345 - Caparica", "Minipreco ID7772 - Fatima", 
  "Minipreco ID8723 - Gondomar", 
  "Minipreco ID8891 - Aveiro", "Pingodoce ID1002 - Amadora", "Pingodoce 
  ID4228 - Faro", "Pingodoce ID4778 - Cova da Piedade", "Pingodoce ID5426 - 
  Coimbra", "Pingodoce ID7734 - Lagos", "Pingodoce ID7734 - Nazare", 
  "Pingodoce ID9832 - Viana do Castelo"), class = "factor"), products = 
  c(86L, 53L, 77L, 89L, 61L, 65L, 60L, 43L, 72L, 34L, 41L, 88L, 44L, 23L, 
  67L, 87L, 45L, 56L, 19L, 
  87L, 53L), lat = c(37.09, 41.23, 38.68, 38.75, 40.65, 38.02, 
  41.55, 38.68, 41.08, 38.67, 40.22, 38.67, 41.01, 37.03, 39.62, 
  41.15, 41.44, 37.1, 38.72, 39.6, 41.71), long = c(-8.26, -8.52, 
  -9.16, -9.24, -8.66, -7.86, -8.43, -9.14, -8.59, -9.19, -8.43, 
  -9.15, -8.64, -7.94, -8.64, -8.52, -8.3, -8.68, -9.14, -9.06, 
  -8.83)), class = "data.frame", row.names = c(NA, -21L))

  output$map01<- renderPlotly({
    p = info %>% ggplot() + geom_polygon(data=world_map, aes(x=long, y=lat, group=group), fill="grey50", alpha=0.3) + geom_point(aes(x=long, y=lat, colour=products, size=products, group=name), alpha=0.6) + scale_size_continuous(range=c(1,10)) + theme_void() + coord_map() + guides(size=FALSE)
    ggplotly(p, tooltip = c("group","colour"))
  })  

})

Этот код создает карту, если она открыта в отдельном окне, но не отображается в Shiny.

00г, ggplot2, plotly, г-пакет, ggplotly,
Похожие вопросы