【问题标题】:shade between two latitudes on country map国家地图上两个纬度之间的阴影
【发布时间】:2013-11-20 10:36:23
【问题描述】:

我想绘制一个国家地图的简单轮廓,并在两个纬度之间有一个灰色阴影区域。 我想我需要使用rworldmap 库,但我不确定如何实现我想要的。

【问题讨论】:

  • rworldmap 是一种方法,但如果您想熟悉 R 中的 GIS,您应该从 spmaptoolsrgdal 开始(它们齐头并进) .就您的问题而言,您应该首先绘制您的国家/地区(使用该国家/地区的 shapefile 或rworldmap 或其他),然后叠加一个具有透明度的灰色多边形。要生成多边形,请参阅包 sp 中的 ?SpatialPolygons。您也可以查看spacedman's cheatsheet

标签: r plot maps rworldmap


【解决方案1】:

其他人的好建议。我最初认为您可能希望纬度阴影延伸到国家边界之外。如果是这种情况,这里有一个快速而肮脏的解决方案,使用rworldmap 绘制地图,sp 绘制它,polygon 从基本图形添加纬度阴影。然后,您可以使用 rgdal 中的 spTransform 进行修改,如果您想投影,或者如果您想裁剪到国家边界,可以使用 Sam 的建议。

library(rworldmap)
library(sp)

sPDFworld <- getMap(resolution="low")
#getMap() maps have ADMIN & NAME fields with country names formatted differently
#use sPDFworld$ADMIN sPDFworld$NAME to check

country <- "United Kingdom"

#to plot just this country (uses sp)
plot(sPDFworld[ sPDFworld$ADMIN==country, ] )

#shade a latitude region
polygon(x=c(-180,-180,180,180),y=c(55,60,60,55),col=adjustcolor('grey',alpha.f=0.5),border=NA)

【讨论】:

    【解决方案2】:

    我会像 https://stackoverflow.com/a/13986029/1358308 那样做一些事情。您可以根据需要裁剪为“矩形”,然后将生成的多边形的内部绘制为“灰色”,并且不要通过将 borders 设置为 NA 来打印它们。

    如果您在较大轮廓“之后”绘制此图(在进行交叉点之前使用相同的多边形),那么您应该填写国家/地区。如果您希望使用不同颜色填充“水”,您可以做这个“第一”。后面的plot(x, add=TRUE) 会将新事物绘制在“顶部”,这样您就不会看到背后的工作。

    希望这是有道理的!

    【讨论】:

      猜你喜欢
      • 2012-03-24
      • 1970-01-01
      • 2021-07-18
      • 1970-01-01
      • 1970-01-01
      • 2015-10-29
      • 1970-01-01
      • 2017-02-22
      • 1970-01-01
      相关资源
      最近更新 更多