我正在尝试使用ggplot和这个dataset 绘制这样的地图:
使用此代码:
dev.off()
map.world <- map_data("world")
plot <- ggplot()
plot <- ggplot(data=DATASET, aes(V2,V1,fill=V3)) +
stat_density2d(aes(fill=..level..,alpha=..level..),
geom='polygon',colour='black') +
scale_fill_continuous(low="green",high="red") +guides(alpha="none")
plot <- plot + expand_limits(x = map.world$long, y = map.world$lat)
plot <- plot + theme(panel.grid=element_blank(),
panel.border=element_blank())
plot <- plot + theme(axis.ticks=element_blank(), axis.text=element_blank())
plot <- plot + theme(legend.position="right",plot.title = element_text(size =
10, face = "bold"))
plot <- plot + coord_map("ortho", orientation=c(90, -90, 0))
plot
我得到这张地图:
如您所见,在某些位置,轮廓会扭曲。但是,当我添加国家地图时:
dev.off()
map.world <- map_data("world")
plot <- ggplot()
plot <- ggplot(data=DATASET, aes(V2,V1,fill=V3)) +
stat_density2d(aes(fill=..level..,alpha=..level..),geom='polygon',
colour='black') +
scale_fill_continuous(low="green",high="red") +guides(alpha="none")
plot <- plot + geom_map(dat=map.world, map = map.world, aes(map_id=region),
fill="NA", color="black")
plot <- plot + expand_limits(x = map.world$long, y = map.world$lat)
plot <- plot + theme(panel.grid=element_blank(),
panel.border=element_blank())
plot <- plot + theme(axis.ticks=element_blank(), axis.text=element_blank())
plot <- plot + theme(legend.position="right",plot.title = element_text(size =
10, face = "bold"))
plot <- plot + coord_map("ortho", orientation=c(90, -90, 0))
plot
我收到此消息:
"Error in FUN(X[[i]], ...) : object 'V2' not found"
。
感谢您的帮助。
您可以下载数据集here
答案 0 :(得分:1)
这只是部分答案,但object 'V2' not found
的问题是因为当你第一次构建ggplot对象时,你将V2,V1和V3映射为美学。这些将贯穿到所有图层,除非您覆盖它们或指定图层不应继承它们。将inherit.aes = F
添加到geom_map
会修复它。
library(tidyverse)
DATASET <- read.delim("https://www.dropbox.com/s/57qeekwm920lxbu/dataset.txt?dl=1", header = F)
map.world <- map_data("world")
plot <- ggplot()
plot <- ggplot(data=DATASET, aes(V2,V1,fill=V3)) +
stat_density2d(aes(fill=..level..,alpha=..level..),geom='polygon',
colour='black') +
scale_fill_continuous(low="green",high="red") +guides(alpha="none")
plot <- plot + geom_map(dat=map.world, map = map.world, aes(map_id=region),
fill="NA", color="black", inherit.aes = F)
# plot <- plot + expand_limits(x = map.world$long, y = map.world$lat)
plot <- plot + theme(panel.grid=element_blank(),
panel.border=element_blank())
# plot <- plot + theme(axis.ticks=element_blank(), axis.text=element_blank())
plot <- plot + theme(legend.position="right",plot.title = element_text(size =
10, face = "bold"))
plot <- plot + coord_map("ortho", orientation=c(90, -90, 0))
print(plot)
由reprex package(v0.2.0)创建于2018-04-13。
我重新打开了刻度线,试图找出极限问题,我相信它正在制造流线。有些点超出了坐标限制,但我不确定如何确切地解决这个问题。也许其他人有关于如何调整expand_limits
或lims
的建议 - 到目前为止,我还没有完全实现。
我在coord_map
的手册页中找到了这个:
# Centered on New York (currently has issues with closing polygons)
worldmap + coord_map("ortho", orientation = c(41, -74, 0))
所以这可能是一个已知的问题。