가장 적합한 이변 량 choropleth 매핑 색 구성표를 선택하는 데 도움이


10

숫자 변수 위에 choropleth map에서 공칭 변수 (2 종류-rainfed vs irrigated)를 오버레이하려고합니다.

여기에 이미지 설명을 입력하십시오

두 범주 사이의 패턴 차이를 강조하기 위해 다른 색 ( "빨간색"의 관개 영역)으로 한 범주의 개요를 설명했지만 색상이 지정되지 않은 범주는 비가 오는 영역입니다.

그러나 맵이 복잡 해져서 윤곽이 숫자 변수의 어두운 음영과 혼합됩니다.

기본 변수의 전체 분포를 숨길 것이라고 생각할 때 두 가지 범주를 나타내는 두 가지 색상 음영 구성표를 사용하지 않으려 고합니다.

R에서 ggplots2 패키지를 사용 하여이 이변 량 분류를 나타내는 더 좋은 방법이 있습니까?

이지도들은 결국 종이에 인쇄 될 것입니다.


관개 지역 경계에서 유클리드 거리 계산을 고려하십시오. 자세한 내용은 여기 : gis.stackexchange.com/q/53163/8104
Aaron

@Aaron, 링크 덕분에 Directional shading이 작동 할 수 있으며 버퍼 도구를 사용하여 R의 영역을 그릴 수 있습니다.하지만 유일한 관심사는 비교적 작은 크기의 다각형이 더 넓어 질 수 있습니다. 요점. 나는 이것을 시도 할 것이다.
varungoel123

@ varungoel123 관심 있는 rasterrasterVis패키지를 사용하여 R 솔루션을 게시했습니다 .
thiagoveloso

답변:


7

관개 영역을 나타내는 윤곽선 대신 투명 채우기 패턴 (예 : 선, hachures)과 같은 것을 사용해야합니다. 예는 다음과 유사합니다.

http://www.geog.fu-berlin.de/de/Karto/umn_karten/bilder/komb2.png

또는 옵션에 대한 개요를 보려면 Google "지도 채우기 패턴"을 클릭하십시오. 관개 영역에만 윤곽선을 사용하면 관개가 지속적인 현상이 아니라는 인상을 줄 수 있습니다.


그것은 큰 제안입니다. ggplot2 또는 R의 다른 패키지에서 이것을 수행하는 방법이 있습니까? 강우와 관개 지역의 묘사가 일정하게 유지되는 약 60-70 개의지도가 있습니다. ggplot2를 사용하면 ArcMap 또는 Qgis를 사용하여 달성 할 수 없었던지도 제작을 자동화 할 수있었습니다
varungoel123

ggplot2 또는 R에 익숙하지 않습니다. 그러나이 채우기 패턴은 상당히 표준적인 것으로 달성하기가 어렵지 않아야합니다. Qgis 또는 ArcMap에서 그 방법을 알고 있습니다. 두 프로그램 모두 일단 정의한 스타일을 저장하고 재사용 할 수 있습니다. 자동화는 둘 다 가능해야합니다. 파이썬 스크립트 또는 arcpy가 당신을 위해 일할 수 있습니다.
Chris P

1
불행히도 ggplot은 채우기 패턴이 좋지 않습니다 (그러나 대안 은 여기 참조 )
cengel

버전 2.0.1의 QGis는 자동지도 제작 기능도 제공합니다
Zbynek

1

최근에 비슷한지도를 작성해야했습니다. 내가 생각해 낸 솔루션은 ggplot2 (RapidVis 패키지) 대신 rasterVis 패키지를 사용합니다.

제 경우에는 시간 경과에 따른 트렌드 맵 (수치 변수이기도 함)과 트렌드의 중요성을 보여주는 맵 (통계 테스트에서 얻은)이있었습니다.

필자의 경우 신뢰도 수준이 더 높은 곳을 보여주기 위해 숫자 맵 위에 유의성 맵을 플롯하여 "비틀림"패턴과 비슷했습니다.

이것은 대략지도를 만드는 데 사용한 코드입니다.

require(raster)
require(rasterVis)

# Scratch raster objects
data(volcano)
r1 <- raster(volcano)

over <- ifelse(volcano >=160 & volcano <=180, 1, NA) # This is the "mask" raster
r2 <- raster(over)

# And this is the key step:
# To convert the "mask" raster to spatial points
r.mask <- rasterToPoints(r2, spatial=TRUE)

# Plot
levelplot(r1, margin=F) +
layer(sp.points(r.mask, pch=20, cex=0.3, alpha=0.8))

귀하의 경우 다음과 같이 코드를 변경할 수 있습니다.

1) "이진"래스터를 생성합니다. 예를 들어 0은 비가오고 1은 관개되며, 내가 한 것처럼 또는 플롯 한 것처럼 플롯합니다.

2) 두 개의 서로 다른 마스크를 만듭니다 (하나는 비를위한 것과 다른 하나는 관개를위한 것). 그리고 둘 다를 서로 다른 물체 (예 : 비가 오는 원과 비가 오는 곳의 십자가)로 플로팅합니다.

두 번째 대안은 맵이 너무 시각적으로 "오염 된"것처럼 보이게한다고 생각하지만 sp패키지 설명서 를 참고하여 포인트의 매개 변수를 항상 제어 할 수 있습니다 ?sp.points.

도움이 되길 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.