【发布时间】:2019-11-26 20:20:52
【问题描述】:
我正在使用renderPlotly 作为闪亮的 ggplot 图表。当我运行该应用程序时,不会显示任何错误,但也不会渲染任何绘图。我的代码有问题吗?
这是我的数据集的一个示例
year region mean_price
<int> <fct> <dbl>
1 2007 Central 360769.
2 2007 East 255519.
3 2007 North 218453.
4 2007 North_East 263780.
5 2007 West 233401.
6 2008 Central 429607.
这是我的代码
library("shiny")
library("shinythemes")
library('plotly')
ui <-fluidPage(
theme=shinytheme("superhero"),
titlePanel("Average Resale Prices "),
sidebarLayout(
sidebarPanel(
selectInput("year","Year", choices = c("All","2007","2008",
"2009","2010","2011",
"2012","2013","2014",
"2015","2016","2017"), selected="All"),
selectInput("region",'Region',choices=c("All",'North','Central','North-East','West','East'),selected="All"),
selectInput("type","Flat-Type",choices = c("All","3 ROOM",'4 ROOM',"5 ROOM"),selected = "All"),width = 2
),
mainPanel(
tabsetPanel(
tabPanel("Summary", plotOutput(outputId = "lineChart")),
tabPanel("Breakdown", plotOutput(outputId = "lineChart1")),
type="tab"
)
)
)
)
# Define server logic required to draw a line graph ----
server <- function(input, output, session){
#df1<-reactive({
#if(input$type =="All"){
# plotdata1%>%
#dplyr::filter(flat_type %in% c("3 ROOM","4 ROOM","5 ROOM"))
# }
# else{
# plotdata1%>%
# dplyr::filter(flat_type %in% input$type)
# }
# })
plotdata1<-data1 %>%
group_by(year, region) %>%
summarize(mean_price=mean(resale_price))
options(scipen = 100000)
output$lineChart <- renderPlotly({
ggplot(data=plotdata1,aes(x=year,y=mean_price))+
geom_line(stat = 'identity',aes(colour=region,group=region))+
geom_point()+
xlim(c(2006,2018))+
ylab("Average Price")+
xlab('Year')
})
}
# Create Shiny object
shinyApp(ui = ui, server = server)
【问题讨论】:
-
尝试在您的绘图代码末尾添加
%>% ggplotly()或将renderPlot与当前代码一起使用。如果要使用renderPlotly,还需要在ui中使用plotlyOutput。 -
也可以尝试定义
p <- ggplot(...)然后p <- ggplotly(p)然后print(p)