代码之家  ›  专栏  ›  技术社区  ›  frank

绘制ggmap时shiny找不到对象

  •  2
  • frank  · 技术社区  · 7 年前

    我希望能够根据用户输入和地图的颜色区域对数据帧进行子集。

    "Error: object 'x5' not found". x5是我从中读取的数据的子集。

    library(shiny)
    library(xlsx)
    library(rgdal)
    library(rgeos)
    library(sp)
    library(ggplot2)
    library(ggmap)
    require(RgoogleMaps)
    
    x3=readRDS('LSOAData.RDS') #data frame, 150k x 110
    
    ui <- shinyUI(fluidPage(
      titlePanel('LSOA Maps of London'),
      column(3,
             selectInput('borough','Borough',
                         choices = unique(x3$LA_NAME)),
             selectInput('measure','Metric to View',
                         choices = colnames(x3[c(10:17)]))
      ),
      column(3,plotOutput('hist')),
      column(6,plotOutput('LSOAMap'))
    ))
    
    server <- shinyServer(function(input, output){
    
      output$hist <- renderPlot({
        hist(x3[x3$LA_NAME==input$borough,input$measure],main=input$borough,ylab='Freq',xlab=input$measure)
      })
    
      output$LSOAMap <- renderPlot({
        x4=x3[x3$LA_NAME==input$borough,]
    
        pp=x4[,c('long','lat')]
        RegionOfInterest <- get_map(location = c(lon = mean(pp$long), lat = mean(pp$lat)),
                                    zoom = 12,
                                    maptype = "roadmap", scale = 2)
        x5=droplevels(x4)
        colnum=which(colnames(x3)=='IMD Score')
        #plot(colnum)
        x5$Measure=cut(x5[,colnum],3)
    #    barplot(table(x5$Measure))
        #colour code each LSOA
        RegionOfInterestMap=ggmap(RegionOfInterest) +
          geom_polygon(aes(x=x5$long, y=x5$lat, group=group,fill=x5$Measure),
                       size=.5,color='black', data=x5, alpha=.5) +
          scale_fill_manual(values=c('green','yellow','red3'),
                            labels=c('Low','Medium','High'),
                            name='Value')+
          ggtitle(paste0(input$measure,' in ',input$borough,' by LSOA'))+
          theme(axis.ticks.y = element_blank(),
                axis.ticks.x = element_blank(),
                axis.text.y = element_blank(),
                axis.text.x = element_blank())
        RegionOfInterestMap
      })    
    
    })
    
    shinyApp(ui = ui, server = server)
    

    注释掉的行 # barplot(table(x5$Measure))

    enter image description here

    但是,当我试着把这条线插进去并打印地图时,我会得到:

    enter image description here

    enter image description here

    欢迎任何建议。

    条形图可以从x5读取,但ggplot不能!

    1 回复  |  直到 7 年前
        1
  •  2
  •   wxxyyyzz    7 年前

    对于ggplot,您不必在那里投入x5美元。

    推荐文章