2015-11-26 4 views
4

Я использовал блестящий для нескольких небольших проектов, и теперь я пытаюсь сделать пакет shinydashboard, который выглядит довольно перспективным. Я также хочу интегрировать интерактивный сюжет с использованием plotly (хотя другие библиотеки можно рассматривать в будущем).Интеграция заговора с shinydashboard

У меня нет проблем с запуском примеров, интегрирующих сюжетно в блестящий (example), но сталкиваются с проблемами при достижении аналогичных результатов с помощью shinydashboard.

Например, код ниже (приложение.R) не работает должным образом.

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




data(movies, package = "ggplot2") 
minx <- min(movies$rating) 
maxx <- max(movies$rating) 


####### 
####### UI 
####### 

ui <- dashboardPage(

    ############# Header 
    dashboardHeader(title = "Test"), 

    ############# Sidebar 
    dashboardSidebar(
    sidebarMenu(
     menuItem("Dashboard", tabName = "dashboard", icon = icon("dashboard")) 
    ) 
), 


    ############# Dashboard body 
    dashboardBody(
    # Boxes need to be put in a row (or column) 
    fluidRow(
     box(plotOutput("plot1"), width=6, height=500), 
     box(plotOutput("plot2"), width=6, height=500) 
    ) 
) 
) 


####### 
####### Server 
####### 


server <- function(input, output, session) { 



    output$plot1 <- renderPlot({ 


    # a simple histogram of movie ratings 
    p <- plot_ly(movies, x = rating, autobinx = F, type = "histogram", 
       xbins = list(start = minx, end = maxx, size = 2)) 
    # style the xaxis 
    layout(p, xaxis = list(title = "Ratings", range = c(minx, maxx), autorange = F, 
          autotick = F, tick0 = minx, dtick = 2)) 

    }) 

    output$plot2 <- renderPlot({ 


    hist(movies$rating, col="blue") 

    }) 
} 


shinyApp(ui, server) 

Предполагается, что на этой странице будут отображаться две аналогичные графики: одна с сюжетом, другая с базой R. Второй отображается правильно, но сюжетный отображается на панели просмотра Rstudio. Если я запустил приложение на терминале с помощью функции runApp(), откроется одна веб-страница для панели управления, а другая - только для интерактивного сюжета.

Я попытался создать некоторые реактивные участки (изменения графиков в зависимости от содержимого некоторых блестящих элементов управления, таких как ползунки), и сюжет, открытый либо в средстве просмотра, либо в другом окне браузера/вкладке. Итак, все работает, единственная проблема заключается в том, что сюжетный сюжет не вставлен в панель управления, а в другое место (просмотрщик или другая вкладка), что, конечно, является проблемой.

Несмотря на мои исследования, я не мог найти решение проблемы (или даже людей, говорящих об этом). Любая подсказка?

ответ

8

Проверьте еще раз внимательно учебник, я думаю, вам нужно заменить в ui

box(plotOutput("plot1"), width=6, height=500) 

по

box(plotlyOutput("plot1"), width=6, height=500) 

И в server просто заменить

output$plot1 <- renderPlot({ 
...... 

по

output$plot1 <- renderPlotly({ 
.... 
+0

Это была моя ошибка. Я пропустил этот момент ... Большое спасибо! – Philippe

Смежные вопросы