chloroplethr 包和 ggplot2 之间的不同渲染
Different rendering between chloroplethr package and ggplot2
我遇到了可视化问题,无法理解。我想根据一些包含位置信息的数据来创建地图。我找到了很棒的 choroplethr
包,这是一个很好的起点,它确实帮助我理解了如何处理数据以获得有意义的结果。这是我想要的地图:
但是当我尝试复制这些步骤时(参见 chlorplethr
包的 self$render
使用 ggplot2
)我得到以下结果:
有谁知道我的参数在哪里 wrong/lacking?这是代码:
fig <- ggplot(data=merge.shp, aes(x = long, y = lat, group = group)) +
geom_polygon(aes(fill = sqm_cat), na.rm=FALSE, rule="evenodd", position="identity") +
coord_equal() +
scale_fill_brewer("", drop = FALSE, na.value = "black") +
ggplot2::theme_void() +
ggtitle("People per square kilometers")
编辑:我想,我找到了问题所在。如果我只绘制一个区域的地图
merge.shp %>% filter(plz %in% c("645"))
%>% ggplot(aes(x=long, y=lat, group=group)) + geom_path
我得到以下结果:
所以一切都可能与坐标“错误”连接有关。如果我将 geom_path
替换为 geom_point
,则有一些合理的轮廓。但是如何将其转换为地图?
解决方法其实很简单。该顺序对于 geom_polygon
是必不可少的,我错误地假设我的数据框 merge.shp
对于所有因素都是按升序排列的,但事实并非如此。介绍
merge.shp = merge.shp[order(merge.shp$order), ]
成功了。
我遇到了可视化问题,无法理解。我想根据一些包含位置信息的数据来创建地图。我找到了很棒的 choroplethr
包,这是一个很好的起点,它确实帮助我理解了如何处理数据以获得有意义的结果。这是我想要的地图:
但是当我尝试复制这些步骤时(参见 chlorplethr
包的 self$render
使用 ggplot2
)我得到以下结果:
有谁知道我的参数在哪里 wrong/lacking?这是代码:
fig <- ggplot(data=merge.shp, aes(x = long, y = lat, group = group)) +
geom_polygon(aes(fill = sqm_cat), na.rm=FALSE, rule="evenodd", position="identity") +
coord_equal() +
scale_fill_brewer("", drop = FALSE, na.value = "black") +
ggplot2::theme_void() +
ggtitle("People per square kilometers")
编辑:我想,我找到了问题所在。如果我只绘制一个区域的地图
merge.shp %>% filter(plz %in% c("645"))
%>% ggplot(aes(x=long, y=lat, group=group)) + geom_path
我得到以下结果:
所以一切都可能与坐标“错误”连接有关。如果我将 geom_path
替换为 geom_point
,则有一些合理的轮廓。但是如何将其转换为地图?
解决方法其实很简单。该顺序对于 geom_polygon
是必不可少的,我错误地假设我的数据框 merge.shp
对于所有因素都是按升序排列的,但事实并非如此。介绍
merge.shp = merge.shp[order(merge.shp$order), ]
成功了。