我正在尝试创建一个依赖于所选输入的地图。我浏览了所有的例子,但由于某种原因,我的代码似乎对我来说正确,但显然它缺少一些东西,因为它不起作用。 ui似乎工作得很好,因为它产生了我想要的滑动条,但它没有使用依赖输入制作任何地图。任何帮助将不胜感激!
这是我的数据:
> datamap
Country.code EVENTONE EVENTTWO EVENTTHREE
1 Bosnia and Herzegovina 11 1 5
2 South Korea 1 4 4
3 Philippines 1 5 6
4 Indonesia 1 6 8
5 Thailand 1 0 9
6 Mongolia 1 0 3
7 Russian Federation 1 0 4
8 Ukraine 1 0 8
9 Slovenia 1 0 5
10 Mongolia 1 0 0
11 Pakistan 1 0 0
12 Bangladesh 1 0 0
这是我的代码:
library(shiny)
library(ggplot2)
shinyUI(fluidPage(
titlePanel(title="Events in the World"),
sidebarLayout(
sidebarPanel(
selectInput("var", "Choose Event:",
choices=c("Event One" = "EVENTONE",
"Event Two" = "EVENTTWO",
"Event Three" = "EVENTTHREE"))
),
# Create a spot for the barplot
mainPanel(
plotOutput("TheMap")
)
)
)
)
shinyServer(function(input, output) {
datamap <- read.csv(".../Desktop/mapexcel1CSV.csv",
stringsAsFactors=FALSE, header=TRUE)
sPDF <- joinCountryData2Map(datamap, joinCode='NAME',
nameJoinColumn='Country.code')
output$TheMap <- renderPlot({
mapPolys(sPDF, nameColumnToPlot= input$var
,mapRegion="world",
missingCountryCol="dark grey", catMethod =
"fixedWith", numCats=20,
oceanCol="light blue")}
)
})
shinyApp(ui = ui, server = server)
非常感谢任何帮助!!!
答案 0 :(得分:0)
我用你的代码创建了一个可重现的例子。在回应输入变化时,ui实际上看起来很好。绘图会更改是选择事件一,二或三。我定义了我的ui和服务器代码(ui = shinyUI(fluidPage(...))和server = shinyServer(函数(输入,输出){...})))。我还在顶部添加了库(rworldmap),以便在下次运行应用程序时将包加载到环境中。
您的代码中的某些功能可能被您环境中的另一个包屏蔽(尝试重新启动R会话)。您也可以尝试在ui和服务器代码之外读取csv文件。最后,也许尝试将csv文件保存为rda,然后加载rda(以测试这是否是可能的文件读取问题)。
看看这是否有帮助并跟进其他问题!