获得正确的点击coords与ggplot地图闪亮

时间:2014-02-09 05:49:19

标签: r user-interface ggplot2 click shiny

我有一个闪亮的应用程序的开头,带有ggplot世界地图。我想得到图上点击的坐标,这样用户可以用地图做事,但坐标很奇怪(NULL或非常小的东西)。重复单击只会改变一个坐标:

complex map

ui.R:

library(shiny)

# Define UI for application
shinyUI(pageWithSidebar(

  # Application title
  headerPanel("My App"),
  sidebarPanel(
    textOutput("clickcoord")
  ),

  # Show a plot of the generated distribution
  mainPanel(
    plotOutput("myworld", height="600px", clickId="plotclick")
  )
))

server.R:

library(shiny)
library(maps)
library(mapdata)
library(ggplot2)
library(rworldmap)

shinyServer(function(input, output) {

  output$myworld <- renderPlot({

     world <- map_data("world")
     worldmap <- ggplot(aes(x = long, y = lat, group = group), data = world) +
       geom_path()

    print(worldmap)
  })

  output$clickcoord <- renderPrint({
          print(input$plotclick)
  })
})

如果我只是使用map()命令来生成非ggplot世界地图,我会得到看起来像点击坐标的好的lat / long值:

simple map

server.R(已修改):

library(shiny)
library(maps)
library(mapdata)

shinyServer(function(input, output) {

    output$myworld <- renderPlot({
      map("world2Hires")
    })

    output$clickcoord <- renderPrint({
      print(input$plotclick) 
    })

})

1 个答案:

答案 0 :(得分:0)

只需将print(worldmap)替换为原始代码中的worldmap即可获得所需内容。闪亮的效果非常适合ggplot2。函数print()似乎生成一个数字,其x和y在范围(0,1)中重置。