Сюжет на блестящем дисплее в программе просмотра в 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 исправил это для меня.