作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作一些城市 map ,我想稍微扭曲它们,以便在最终 map 上最密集的部分(在这种情况下是曼哈顿)看起来更宽一些。我很难在城市级别找到好的投影示例。
我只是想要一个能够制作出更好看的纽约市 map 的投影,但这可能太主观了,所以假设我想给曼哈顿增肥。我在下面尝试过的可重现代码:
library(ggplot2)
library(maptools)
shpny.tf <- tempfile()
download.file(
"http://www2.census.gov/geo/tiger/TIGER2010/COUNTY/2010/tl_2010_36_county10.zip" ,
shpny.tf ,
mode = 'wb'
)
shpny.uz <- unzip( shpny.tf , exdir = tempdir() )
ny.shp <- readShapePoly( shpny.uz[ grep( 'shp$' , shpny.uz ) ] )
# limit the shapefile to only the five boroughs
nyc.shp <- subset( ny.shp , as.numeric( as.character( COUNTYFP10 ) ) %in% c( 5 , 47 , 61 , 81 , 85 ) )
# prepare for plotting
nyc <- fortify( nyc.shp )
# make a plot
p <- qplot( data = nyc , x = long , y = lat )
# default plot
p
# these two seem like good candidates for fattening,
# but i'm not sure how to make them take up more space on the right and left side
p + coord_map("ortho", orientation=c(41, -74, -25))
p + coord_map("azequalarea",orientation=c(41,-74,-22))
# this one's okay but still not ideal
p + coord_map("lagrange")
# this one is named for new york yet i can't get it to do anything useful
p + coord_map("newyorker",r=10)
最佳答案
我下载了 shapefile 并存储了它,因为不断下载 1M 文件的效果值得怀疑。因为我是用 curl
做到的在命令行上,我已经在终端中了,所以我用 ogr2ogr
预先提取了五个行政区。 :
$ ogr2ogr -f "ESRI Shapefile" \
-where 'COUNTYFP10 IN ("005", "047", "061", "081", "085")' \
boroughs.shp tl_2010_36_county10.shp
readOGR
读取了新的 shapefile并设置一些必要的库:
library(rgdal)
library(maptools)
library(ggplot2)
boroughs.shp <- readOGR("tl_2010_36_county10/", "boroughs")
nyc <- boroughs.shp[boroughs.shp$NAME10 == "New York",]
other_four <- boroughs.shp[boroughs.shp$NAME10 != "New York",]
?elide
因为它可以让你缩放多边形并移动它们,你需要做的比我在这个例子中展示的要多。在这里,我将 nyc 缩放为 1.1(任意),但其他人保持 1:1 的比例。自
elide
以来,我在这里采取了一些捷径并同时做这两项工作更改 SpatialPolygonsDataFrames 的 CRS。
nyc <- elide(nyc, scale=1.1)
other_four <- elide(other_four, scale=1)
boroughs.shp <- spRbind(nyc, other_four)
boroughs <- fortify(boroughs.shp, region="NAME10" )
geom_map
这为您提供了连续的多边形与您的点图:
gg <- ggplot(data=boroughs, aes(x=long, y=lat))
gg <- gg + geom_map(map=boroughs, aes(map_id=id, group=group), fill="white", color="black")
gg <- gg + coord_map()
gg
globular
?
gg_globular <- gg + coord_map("globular", orientation=c(41,-74,-22)) + ggtitle("globular")
关于r - r 中的哪些投影会使城市 map 变胖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26493524/
COW 不是奶牛,是 Copy-On-Write 的缩写,这是一种是复制但也不完全是复制的技术。 一般来说复制就是创建出完全相同的两份,两份是独立的: 但是,有的时候复制这件事没多大必要
我是一名优秀的程序员,十分优秀!