我有一个闪亮的应用程序的开头,带有ggplot世界地图。我想得到图上点击的坐标,这样用户可以用地图做事,但坐标很奇怪(NULL
或非常小的东西)。重复单击只会改变一个坐标:
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值:
server.R(已修改):
library(shiny)
library(maps)
library(mapdata)
shinyServer(function(input, output) {
output$myworld <- renderPlot({
map("world2Hires")
})
output$clickcoord <- renderPrint({
print(input$plotclick)
})
})
答案 0 :(得分:0)
只需将print(worldmap)
替换为原始代码中的worldmap
即可获得所需内容。闪亮的效果非常适合ggplot2。函数print()
似乎生成一个数字,其x和y在范围(0,1)中重置。