#矢印を使う関数 number1<-c(6,27,35) colo<-rep("white",length(shape.poly)) colo[number1]<-"red" plot(shape.poly,col=colo,xlim=c(-11000,-6000),ylim=c(-17000,-4000)) #描画 fun<-function(x,y, num) { par(new=T) plot(shape.poly,xlim=c(-11000,-6000),ylim=c(-17000,-4000),col=NA) xy<-locator(1) #defalt size <- c(1, 1) #現在のデバイスの情報取得 pars <- par() #縦と横の幅[インチ] fin <- pars$fin #余白の全体の割合[left,right,top,bottom] pltin <- pars$plt * fin[c(1, 1, 2, 2)] #現在の余白[bottom, left, top, right][インチ] mai <- c(pltin[3], pltin[1], fin[2]-pltin[4],fin[1]-pltin[2]) #現在の座標値の情報 usr <- pars$usr #1座標が何インチか計算 uin <- c((fin[1]-(mai[2]+mai[4]))/(usr[2]-usr[1]), (fin[2]-(mai[1]+mai[3]))/(usr[4]-usr[3])) #デバイス左端からxyのx座標までの距離[インチ] xi <- mai[2] + (xy$x - usr[1]) * uin[1] #デバイス下端からxyのy座標までの距離[インチ] yi <- mai[1] + (xy$y - usr[3]) * uin[2] size <- size/2 if(!missing(x) && !missing(y)) { mx <- xy$x + pretty(c( -size, size), 20)/uin[1] my <- xy$y + pretty(c( -size, size), 20)/uin[2] dx <- abs(x-mx) dy <- abs(y-my) arrows(mx[dx == min(dx)],my[dy == min(dy)],x,y,length = 0.1) } newmai <- c(yi-size[2],xi-size[2],fin[2]-yi-size[2],fin[1]-xi-size[1]) #新しく作るデバイスの余白設定 newmex<-sqrt(max(size)/min(fin)) on.exit(par(pars[c("usr","mex","mai")])) par(mex=newmex,mai=newmai) par(new=T) plot(bgwr.v[1:40,num],type="l",xlab="",ylab="",ylim=c(0,3)) } neigh.num<-c(16,18,8,15,32,22,24,21,30,34) plot(shape.poly,xlim=c(-11000,-6000),ylim=c(-17000,-4000),col=colo) #描画 for(i in 1:length(neigh.num)) { fun(g.point[neigh.num[i],1],g.point[neigh.num[i],2],neigh.num[i]) text(-9500,-2300,paste("地区",neigh.num[i])) }