沖縄だけ絶妙に例外的に描く

MikuHatsune2014-02-27

spsurveyで日本地図を描くのだが、沖縄だけ遠いから絶妙に日本海側に描く方法をゴリ押しした。

library(spsurvey)
jpn_GA <- read.shape("JPN_adm/JPN_adm1.shp")
# 日本全体の設定
xl <- c(129, 146)
yl <- c(30.8, 45)
cols <- bluered(100)

lmat <- matrix(1, 3, 3)
diag(lmat) <- c(2, 1, 3)
layout(lmat, widths=c(10,1,10), heights=c(10,1,10))
par(mar=c(0,0,0,0))
plot(jpn_GA, xlim=xl, ylim=yl, col=cols[cut(prop, length(cols))])
# 沖縄の緯度と経度
xokinawa <- c(127.5, 128.2)
yokinawa <- c(26.0, 27)
par(mar=rep(6, 4))
plot(jpn_GA, xlim=xokinawa, ylim=yokinawa, col=cols[cut(prop, length(cols))])
pa <- par()$usr
segprop <- 0.8
segments(pa[1], pa[3], x1=pa[1]+diff(pa[1:2])*segprop)
segments(pa[2], pa[4], y1=pa[4]-diff(pa[3:4])*segprop)
segments(pa[1]+diff(pa[1:2])*segprop, pa[3], x1=pa[2], y1=pa[4]-diff(pa[3:4])*segprop)
# カラースケールを描く
par(mar=c(5, 4, 18, 2))
m0 <- matrix(seq(min(prop), max(prop), length=length(cols)), nc=1)
image(c(m0), 1, m0, col=cols, yaxt="n", xlab="", ylab="")