Цель состоит в том, чтобы создать интерактивный (одиночный) график в Shiny, в котором пользователь может выбрать любую из требуемых переменных кадра данных. А пока переменная freq_prov_tot построена. Сам сюжет работает, но я не знаю, как включить другие переменные для «выбора» в интерактивном режиме. Также имеется всплывающая подсказка. Я использую ggiraph из-за возможности довольно легко интегрировать эту интерактивную карту полигонов в Shiny.
Если у вас есть идеи, как это можно исправить, помощь очень ценится.
Фрейм данных, который я использую, выглядит следующим образом. Для защиты используемых данных всем провинциям присваивается значение 1 для переменной freq_prov_tot.
counties_e<- fortify(Iran3, region = "NAME_1")
counties_e$freq_prov_tot<- ifelse(counties_e$id == "Alborz",1,
ifelse(counties_e$id == "Ardebil",1,
ifelse(counties_e$id == "Bushehr",1,
ifelse(counties_e$id == "Chahar Mahall and Bakhtiari",1,
ifelse(counties_e$id == "East Azarbaijan",1,
ifelse(counties_e$id == "Esfahan",1,
ifelse(counties_e$id == "Fars",1,
ifelse(counties_e$id == "Gilan",1,
ifelse(counties_e$id == "Golestan",1,
ifelse(counties_e$id == "Hamadan",1,
ifelse(counties_e$id == "Hormozgan",1,
ifelse(counties_e$id == "Ilam",1,
ifelse(counties_e$id == "Kerman",1,
ifelse(counties_e$id == "Kermanshah",1,
ifelse(counties_e$id == "Khuzestan",1,
ifelse(counties_e$id == "Kohgiluyeh and Buyer Ahmad",1,
ifelse(counties_e$id == "Kordestan",1,
ifelse(counties_e$id == "Lorestan",1,
ifelse(counties_e$id == "Markazi",1,
ifelse(counties_e$id == "Mazandaran",1,
ifelse(counties_e$id == "North Khorasan",1,
ifelse(counties_e$id == "Qazvin",1,
ifelse(counties_e$id == "Qom",1,
ifelse(counties_e$id == "Razavi Khorasan",1,
ifelse(counties_e$id == "Semnan",1,
ifelse(counties_e$id == "Sistan and Baluchestan",1,
ifelse(counties_e$id == "South Khorasan",1,
ifelse(counties_e$id == "Tehran",1,
ifelse(counties_e$id == "West Azerbaijan",1,
ifelse(counties_e$id == "Yazd",1,
ifelse(counties_e$id == "Zanjan",1, 0)))))))))))))))))))))))))))))))
Код для всплывающей подсказки
provinces_e <- sprintf("<p>%s</p>",
as.character(counties_e$id) )
table_e <- paste0(
"<table><tr><td>Total Number of Environmental Issues:</td>",
sprintf("<td>%.0f</td>", counties_e$freq_prov_tot),
"</tr></table>"
)
counties_e$labs <- paste0(provinces_e, table_e)
код для интерфейса пользователя и сервера
ui_e <- fluidPage(
# Application title
titlePanel("Spatial Distribution of Environmental Issues in Iran during 1930 - 2018"),
fluidRow(column(12,
ggiraph::ggiraphOutput("county_map")))
)
server_e <- function(input, output) {
output$county_map<- renderggiraph({
p<- ggplot(counties_e, aes(x=long, y=lat, group = group, fill = freq_prov_tot)) +
xlab("Longitude") + ylab("Lattitude") + labs(fill = "Number of Environmental Issues") +
coord_map("polyconic" ) +
geom_polygon_interactive(aes(tooltip = labs))
ggiraph(code = print(p))
})
}
shinyApp(ui = ui_e, server = server_e)
Counties_e можно скачать по следующей ссылке:
https://drive.google.com/file/d/1TOyZIADTCnRFyWLehxS7Td9v-BOZXARS/view?usp=sharing