我创建了一个函数来生成ggplot拟弦图,它可以工作:)但是,我想删除图例标题(请参见下图),因为它现在显示“ I”。此外,我想将悬停文本更改为在Maps数据框中适应的变量标签。但是,当我将此数据文件与形状文件合并时,进一步将MAPS数据帧转换为ggplot的可读格式,则变量标签在此过程中丢失。因此,我想维护变量标签,并且还希望以某种方式将变量标签合并到函数代码中,以便在ggplotly悬停文本中获得fill =变量的变量标签。
我的代码下面:
library(shiny)
library(shinydashboard)
library(ggplot2)
library(cbsodataR)
library(plotly)
library(sjlabelled)
library(expss)
library(tidyr)
library(tidyverse)
library(dplyr)
library(stringr)
library(rgdal)
library(plyr)
#Loading shapefile
ShapefileWijken <- readOGR("/Users/anne/Desktop/RondeVenen/ALGEMEEN_DATA/SHAPEFILES_DRV_6PC_5PC_Gemeente/WijkenEnBuurten/WijkenEnBuurten.shp")
#Opening data Dutch public database
Maps <- cbs_get_data("84583NED",
select=c("AantalInwoners_5","HuishoudensTotaal_28",
"Woningvoorraad_34", "GemiddeldInkomenPerInkomensontvanger_65", "Codering_3"))
#Merge data with shapefile
MAPS <- merge(ShapefileWijken,
Maps,
by.x = "BU_CODE",
by.y="Codering_3",
all=FALSE)
#Turn data into readable format for ggplot
MAPS@data$id <- rownames(MAPS@data)
TUSSEN <- fortify(MAPS, region="id")
CHOROPLETH <- merge(TUSSEN, MAPS@data, by="id")
library(plyr)
CHOROPLETH <- join(TUSSEN, MAPS@data, by="id")
###FUNCTION MAPS
ggplot_MAP <- function(i){
ggplot(data = CHOROPLETH, aes(x=long, y=lat, group = group)) +
geom_polygon(aes(fill=i), color="black") +
scale_fill_gradient(low="#99cc33", high="#009999") +
theme_void() +
theme(panel.border = element_blank(), panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), axis.line.y=element_blank(), axis.line.x=element_blank(),
legend.title = element_blank())
}
#Adding gg plot choropleth map to shiny server
output$MAPINWONERS <- renderPlotly({
ggplotly(ggplot_MAP(CHOROPLETH$AantalInwoners_5)) %>% config(modeBarButtonsToRemove = c(
'sendDataToCloud', 'autoScale2d', 'resetScale2d', 'toggleSpikelines',
'hoverClosestCartesian', 'hoverCompareCartesian',
'zoom2d','pan2d','select2d','lasso2d','zoomIn2d','zoomOut2d'
), displaylogo=FALSE) %>% layout(dragmode=FALSE)
答案 0 :(得分:0)
您可以通过在labs(fill=NULL)
语句后立即添加geom_polygon()
来删除图例标题。要获得所需的悬停文字,请在text=paste("Text1",var1,"\nText2",var2)
的{{1}}内定义aes
;这里Text1和Text2将是您想要的文本,而var1和var2将是您的变量标签。然后在ggplot
中加入tooltip=c("text")
。