我试图绘制一张美国地图,其中每个州都被它所拥有的数量着色。我已经让阴影工作得很好。然而,我遇到的问题是多边形看起来非常锯齿状(当我尝试将map_data('状态')与我的数据框合并时,我假设发生了一些事情。按州计算)。合并之前的数据框有49行(Nevada在我的集合中缺少数据),并且在合并之后有更多的行(预期用于状态的long / lat项目)但是数据似乎是为每个纬度/长度正确复制的对,所以我不确定为什么聚合物如此锯齿状。
代码:
ggplot() +
geom_polygon(data=try1, aes(x=long, y=lat, group = group, fill= COUNT)) +
scale_fill_continuous(low='thistle2', high='darkred', guide='colorbar') +
theme_bw() + labs(fill="State Map Try Title1", title='Title2', x='', y='') +
scale_y_continuous(breaks=c()) +
scale_x_continuous(breaks=c()) +
theme(panel.border = element_blank())
非常感谢任何帮助(显然,如果有更好的方法,我可以接受建议!)。
答案 0 :(得分:14)
您无需进行合并。您可以使用geom_map
并将数据与形状分开。以下是使用内置USArrests
数据(使用dplyr
重新格式化)的示例:
library(ggplot2)
library(dplyr)
us <- map_data("state")
arr <- USArrests %>%
add_rownames("region") %>%
mutate(region=tolower(region))
gg <- ggplot()
gg <- gg + geom_map(data=us, map=us,
aes(x=long, y=lat, map_id=region),
fill="#ffffff", color="#ffffff", size=0.15)
gg <- gg + geom_map(data=arr, map=us,
aes(fill=Murder, map_id=region),
color="#ffffff", size=0.15)
gg <- gg + scale_fill_continuous(low='thistle2', high='darkred',
guide='colorbar')
gg <- gg + labs(x=NULL, y=NULL)
gg <- gg + coord_map("albers", lat0 = 39, lat1 = 45)
gg <- gg + theme(panel.border = element_blank())
gg <- gg + theme(panel.background = element_blank())
gg <- gg + theme(axis.ticks = element_blank())
gg <- gg + theme(axis.text = element_blank())
gg
答案 1 :(得分:0)
使用ggplot2时遇到了类似的问题。作为@hrbrmstr解决方案的替代方案,我发现重新加载ggplot2
包(以及rgdal
/`maptools')为我解决了这个问题。