Сюжет на блестящем дисплее в программе просмотра в R studio вместо веб-браузера

Это мое первое блестящее приложение, которое я пытаюсь сделать.

Ранее я просматривал некоторые учебные пособия, и при внешнем запуске приложения все они отображались в веб-браузере.

Теперь все отображается в веб-браузере, кроме сюжета, который отображается в программе просмотра в R studio. Он реагирует на sliderInput, который правильно отображается в веб-браузере. Я, очевидно, хочу, чтобы он отображал все в веб-браузере

В чем может быть проблема? Я сделал это воспроизводимым примером с набором данных diamonds, код которого выглядит следующим образом:

ui.R

 library(shiny)
library(ggvis)
library(ggplot2)
library(dplyr)

shinyUI(fluidPage(

  titlePanel("Analyza demografickych udajov Slovenskej republiky"),

  sidebarLayout(
    sidebarPanel(
      sliderInput("rok","Vyber rok ktory chces pozriet",min = min(diamonds$table),max = max(diamonds$table),value = 60,step = 1)

    ),



    mainPanel(
      tabsetPanel(type="tab",
                  tabPanel("plot",plotOutput("plot")),
                  tabPanel("Vzorka raw dat",tableOutput("table"))

      )
    )



  )))



 server.R

library(shiny)
library(ggvis)
library(ggplot2)
library(dplyr)

#read.csv("Demog.csv")
#p<-read.table(file = "Demog.csv",header = T,sep = ";")
#head(p)
#colnames(p)[2]<-"rok"
#colnames(p)[3]<-"pocet obyvatelov"

shinyServer(function(input,output){

  output$table<-renderTable({

    head(diamonds,10)
  })

  output$plot<-renderPlot({

    diamonds%>%filter(table==as.numeric(input$rok))%>%ggvis(~depth,~price)%>%layer_lines

  })

})

    }

2 ответа

Решение

Это одно из решений:

На сервере используйте реактивный вместо renderPlot,

  plot<-reactive({           
  diamonds%>%filter(table==as.numeric(input$rok))%>%ggvis(~depth,~price)%>%layer_lines
  })

и привязать график ggvis к блестящему за пределами реактивного утверждения:

plot%>% bind_shiny(plot_id="plot")

В пользовательском интерфейсе ваш вывод на главной панели должен быть:

      tabsetPanel(type="tab",
              tabPanel("plot",ggvisOutput("plot")),
              tabPanel("Vzorka raw dat",tableOutput("table"))

  )

Также обратите внимание, что вам не нужно помещать в библиотеку пакеты в вашем пользовательском интерфейсе.

Надеюсь это поможет

Это, вероятно, не будет работать для всех пользователей, но для тех, кто прибывает из Google: попробуйте закрыть и снова открыть RStudio. У меня была такая же проблема (сюжет появлялся в RStudio вместо приложения Shiny), потому что я запустил строку dev.off(). Просто перезапустив RStudio исправил это для меня.

Другие вопросы по тегам