2015-07-16 2 views
0

Я разрабатываю панель управления R Shiny, используя данные Iris в наборе данных ggplot2. Он имеет три основных компонента: панель боковой панели для выбора переменных, отображаемых на графике, ggplot с пунктирными точками и данных, которые ниже, которые показывают данные в почищенных точках. Все работает отлично, за исключением того, что datatable не отображает точки данных на таблице. Из того, что я могу сказать, это имеет какое-то отношение к строке вывод $ plot_brushed_points на сервере. Любая помощь будет принята с благодарностью!R Блестящий dataTableOutput не отображается Brushed Points

library(shiny) 
library(ggplot2) 

useri <- shinyUI(pageWithSidebar(
headerPanel("Reactive Plot"), 
sidebarPanel(
selectInput('x','X-Axis',names(iris)), 
selectInput('y','Y-Axis',names(iris)), 
selectInput('color','Color',c('None',names(iris[5])))), 
mainPanel(uiOutput("plotui"),dataTableOutput("plot_brushed_points")))) 

serveri <- shinyServer(function(input,output) { 
output$plot <- renderPlot({ 
p <- ggplot(iris,aes_string(x=input$x, y=input$y))+geom_point()+theme_bw() 
if(input$color != 'None') 
    p <- p + aes_string(color=input$color) 
print(p) 
}) 
output$plotui <- renderUI(plotOutput("plot",brush = brushOpts("plot_brush"))) 
output$plot_brushed_points <- renderDataTable(brushedPoints(iris,input$plot_brush,input$x,input$y), options=list(searching=FALSE, paging = FALSE)) 
}) 

shinyApp(useri, serveri) 

Я хотел бы отметить, что таблица отображает данные, и вы можете увидеть его обновить, он просто не заливает каких-либо данных.

EDIT

Сценарий выше, имеет функцию, где он отображает все значения в таблице данных, если и только если выбрать всю площадь участка.

ответ

0

У меня была аналогичная проблема. Я исправил его в конце концов (после прочтения этого сообщения: https://github.com/rstudio/shiny/issues/998), не вызывая печать на сюжете, просто вернув его. Таким образом:

output$plot <- renderPlot({ 
p <- ggplot(iris,aes_string(x=input$x, y=input$y))+geom_point()+theme_bw() 
if(input$color != 'None') 
p <- p + aes_string(color=input$color) 
#print (p) 
p 
}) 
Смежные вопросы