[英]Combining balloon plot with shapefile map in ggplot
我正在嘗試將氣球圖和從www.gadm.org中提供的基本中國shapefile創建的基本地圖結合起來。 我的目標是創建一個氣球圖,使用來自單獨數據幀的數據作為shapefile映射頂部的圖層,使用經度和緯度來確定氣球的位置。
library(ggplot2)
library(maps)
library(maptools)
China_basic <- readShapePoly("CHN_adm0.shp")
china_basemap <-fortify(China_shp)
chinachart <- ggplot(china_basemap,aes(x=long,y=lat,group=group)) +
geom_polygon(colour="white")
到目前為止,到目前為止,一切順利,現在,我想將其他數據從單獨的數據框中添加到繪圖中:
cit <- c('Beijing','Shanghai','Guangzhou')
lng <- c(116.23,121.3,113.16)
lt <- c(39.55,31.12,23.08)
pop <- c(18590000,24256800,11264800)
dat <- c(400,560,700)
newdata <- data.frame(cit,lng,lt,pop,dat)
chinachart + geom_point(x=newdata$lng,y=newdata$lt,size=newdata$pop,fill=newdata$dat,
shape=21,colour='black')+
scale_colour_gradient2(low="white",mid="yellow",high="red",midpoint=560)
這給我以下錯誤,並且我不確定我的語法做錯了什么:
Error: Incompatible lengths for set aesthetics: shape, colour, size, fill, x, y
任何幫助,不勝感激。
一個問題是使用scale_colour_gradient2
與scale_fill_gradient2
(您映射fill
美學,而不是color
)。
另一個是如何構建geom_point
圖層。
這是正確的版本,但映射習慣略有不同:
library(sp)
library(raster)
library(rgeos)
library(ggplot2)
library(ggthemes)
china_basic <- getData("GADM", country="CHN", level=0)
china_basic <- SpatialPolygonsDataFrame(gSimplify(china_basic, 0.05), china_basic@data)
china_basemap <- fortify(china_basic)
gg <- ggplot()
gg <- gg + geom_map(data=china_basemap, map=china_basemap,
aes(x=long, y=lat, map_id=id),
color="white")
gg <- gg + coord_map("azequalarea")
gg <- gg + theme_map()
china_chart <- gg
cit <- c('Beijing', 'Shanghai', 'Guangzhou')
lng <- c(116.23, 121.3, 113.16)
lat <- c(39.55, 31.12, 23.08)
pop <- c(18590000, 24256800, 11264800)
dat <- c(400, 560, 700)
new_data <- data.frame(cit, lng, lat, pop, dat, stringsAsFactors=FALSE)
china_chart <- china_chart +
geom_point(data=new_data,
aes(x=lng, y=lat, size=pop, fill=dat),
shape=21, colour='black')
china_chart <- china_chart +
scale_fill_gradient2(low="white", mid="yellow", high="red", midpoint=560)
china_chart <- china_chart + theme(legend.position="bottom")
china_chart
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.