【发布时间】:2015-06-08 09:05:05
【问题描述】:
以前的帖子
Cleaning up a map using geom_tile
Get boundaries to come through on states
问题/疑问
我正在尝试平滑一些数据以使用 ggplot2 进行映射。感谢@MrFlick 和@hrbrmstr,我取得了很大进展,但是在我需要列出的状态上获得“渐变”效果时遇到了问题。
这是一个示例,可以让您了解我在寻找什么:
**** 这正是我想要实现的目标。
http://nrelscience.org/2013/05/30/this-is-how-i-did-it-mapping-in-r-with-ggplot2/
(1) 如何充分利用 ggplot2 的数据?
(2) 有没有更好的方法来实现渐变效果?
目标
我想从这个赏金中实现的目标是:
(1) 对数据进行插值构建栅格对象,然后用ggplot2绘图
(或者,如果可以对当前绘图进行更多操作并且光栅对象不是一个好的策略)
(2) 使用 ggplot2 构建更好的地图
当前结果
我一直在玩很多这些不同的情节,但仍然对结果不满意,原因有两个:(1)渐变没有我想要的那么多; (2) 演示文稿可以改进,虽然我不知道该怎么做。
正如@hrbrmstr 所指出的,如果我对数据进行一些插值以产生更多数据,然后将它们放入栅格对象并使用 ggplot2 绘图,它可能会提供更好的结果。我认为这是我现在应该追求的,但鉴于我拥有的数据,我不确定如何做到这一点。
我在下面列出了到目前为止我已经完成的代码和结果。我非常感谢在这件事上的任何帮助。谢谢。
数据集
这里有两个数据集:
(1) 完整数据集 (175 mb):PRISM_1895_db_all.csv(不可用)
https://www.dropbox.com/s/uglvwufcr6e9oo6/PRISM_1895_db_all.csv?dl=0
(2) 部分数据集 (14 mb):PRISM_1895_db.csv(不可用)
https://www.dropbox.com/s/0evuvrlm49ab9up/PRISM_1895_db.csv?dl=0
*** 编辑:对于那些感兴趣的人,数据集不可用,但我在我的网站上发表了一篇文章,将这段代码与加利福尼亚数据的子集联系起来 http://johnwoodill.com/pages/r-code.html
情节 1
PRISM_1895_db <- read.csv("/.../PRISM_1895_db.csv")
regions<- c("north dakota","south dakota","nebraska","kansas","oklahoma","texas","minnesota","iowa","missouri","arkansas", "illinois", "indiana", "wisconsin")
ggplot() +
geom_polygon(data=subset(map_data("state"), region %in% regions), aes(x=long, y=lat, group=group)) +
geom_point(data = PRISM_1895_db, aes(x = longitude, y = latitude, color = APPT), alpha = .5, size = 5) +
geom_polygon(data=subset(map_data("state"), region %in% regions), aes(x=long, y=lat, group=group), color="white", fill=NA) +
coord_equal()
情节 2
PRISM_1895_db
regions<- c("north dakota","south dakota","nebraska","kansas","oklahoma","texas","minnesota","iowa","missouri","arkansas", "illinois", "indiana", "wisconsin")
ggplot() +
geom_polygon(data=subset(map_data("state"), region %in% regions), aes(x=long, y=lat, group=group)) +
geom_point(data = PRISM_1895_db, aes(x = longitude, y = latitude, color = APPT), alpha = .5, size = 5, shape = 15) +
geom_polygon(data=subset(map_data("state"), region %in% regions), aes(x=long, y=lat, group=group), color="white", fill=NA) +
coord_equal()
情节 3
PRISM_1895_db <- read.csv("/.../PRISM_1895_db.csv")
regions<- c("north dakota","south dakota","nebraska","kansas","oklahoma","texas","minnesota","iowa","missouri","arkansas", "illinois", "indiana", "wisconsin")
ggplot() +
geom_polygon(data=subset(map_data("state"), region %in% regions), aes(x=long, y=lat, group=group)) +
stat_summary2d(data=PRISM_1895_db, aes(x = longitude, y = latitude, z = APPT)) +
geom_polygon(data=subset(map_data("state"), region %in% regions), aes(x=long, y=lat, group=group), color="white", fill=NA)
【问题讨论】:
-
感谢您发布这个精彩的问题。我也对它很感兴趣,但数据的链接不可用。你能提供一个新的链接吗?非常感谢。
-
@YangYang 抱歉回复晚了,感谢您发布指向我网站的链接。请参阅链接以获取使用加利福尼亚的示例,而不是此处描述的示例。
标签: r ggplot2 geospatial interpolation