How to correctly output Plotly plots in shiny?

百般思念 提交于 2020-08-06 00:54:17

问题


I am trying to make a shiny app based on New York crime historical data. I am using single shiny page approach. Here's the data: https://data.world/data-society/nyc-crime-data

For some reason when I select the year to output the crime statistics, my output gets outputted only in the Viewer of RStudio and not on the main panel of the Shiny popup. Here's the complete code:

# Shiny App exploring New York City Crime Data between 2006-2016
# Data Source: https://data.world/data-society/nyc-crime-data

#########################Global Data######################

 # Data Reading
 set.seed(123)
 library("shiny")
 library("lubridate") 
 library("plotly")
 nypd<-read.csv("NYPD_Complaint_Data_Historic.csv")

 #Data Massaging
 nypd$year<-year(as.Date(nypd$RPT_DT,'%m/%d/%Y'))
 nypd$month<-month(as.Date(nypd$RPT_DT,'%m/%d/%Y'))
 nypd<-nypd[nypd$OFNS_DESC != "",]
 nypd2<-nypd[,c(1,6,8,14,16,17,22,23,25,26)]

 ui<-fluidPage(
 titlePanel("New York City Crime Data from 2006-2016"),
 sidebarLayout(
   sidebarPanel(
     sliderInput("year","Year of Crime",min=2006,max=2016,value=2008,step = 1)
   ),
   mainPanel(plotOutput("crimeplot"))
 )
 )


 server<-function(input,output){
   output$crimeplot<-renderPlot({

     nypd_yr_sorted<-nypd2[nypd2$year==input$year,]
     agg_data<-     aggregate(nypd_yr_sorted$CMPLNT_NUM,by=list(nypd_yr_sorted$OFNS_DESC),FUN=functi     on(x)length(unique(x)))
     colnames(agg_data)<-c("Crime","Crime count")
     bar_data<-agg_data[order(agg_data$`Crime count`, decreasing = TRUE),][1:5,]
     plot_ly(bar_data,x=~Crime,y=~`Crime count`,type="bar",color = ~Crime) %>% layout(xaxis= list(showticklabels = FALSE))
   })

 }

 shinyApp(ui = ui, server = server)

回答1:


Plotly charts are rendered with plotlyOutput() and renderPlotly(). Two changes to the code are required:

  1. Change mainPanel() to mainPanel(plotlyOutput("crimeplot"))
  2. Change output$crimeplot to output$crimeplot<-renderPlotly({

...and the output:



来源:https://stackoverflow.com/questions/48017341/how-to-correctly-output-plotly-plots-in-shiny

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!