2017-08-10 10 views
0

spplotを使用して、choroplethマップをプロットしています。私の問題は、プロットフレームがマップの周りに緊密に描画されていることです(下のサンプルコードを参照)。フレームを完全に削除したいのですが、trellis.par.set(axis.line=list(col=NA))というオプションを使用することはできません。凡例の軸線を省略するためです。凡例は、スケールを読みやすくするために必要です。また、私のカラーパレットには白を入れる必要があります。Rのポリゴンのフレームまたはフレームを修正するには?

クイックフィックスとして、私はspplotフレーム上(白)ポリゴンを追加しようとしたが、それはオプションunder=Fを使用しているにもかかわらず、フレームの下に描かれている:

#Plotting dummy polygons 
library(sp) 
p1 <- Polygons(list(Polygon(cbind(c(13,15,20,20), c(8,13,14,8)))), "1") 
p2 <- Polygons(list(Polygon(cbind(c(20,20,28,30), c(8,15,12,7)))), "2") 
p3 <- Polygons(list(Polygon(cbind(c(15,20,25,22,18), c(8,8,7.5,0,2)))), "3") 
polys <- SpatialPolygons(list(p1,p2,p3)) 
spdf <- SpatialPolygonsDataFrame(polys, data.frame(var1=c(1,4,8))) 
spplot(spdf, col.regions=topo.colors(16)) 

#Adding an extra polygon to try to cover the frame 
frame <- extent(spdf) 
spplot(spdf, col.regions=topo.colors(16)) + 
    layer(sp.polygons(as(frame,'SpatialPolygons'), lwd=3, col=3, fill=NA), under=F) 
    #(using green here to actually see the box) 

秒最善の解決策を描くことであろうが地図を地図から遠ざけてください。残念ながら、私は外側の余白を変更する方法についての説明しか見つけられませんでした。 trellis.par.set(layout.heights=list(top.padding=3,bottom.padding=3))がありますが、私は内部のマージン(spplotプロットにそのようなものがある場合)を制御する方法の手がかりがありません。

spplotのフレームまたは内側の余白を変更する際の助けがあれば幸いです!

答えて

0

ソリューション1:黒のカラーキーの概要を維持しながら、透明設定プロットパネルのアウトライン

spplot(spdf, col.regions=topo.colors(16), 
     par.settings = list(axis.line = list(col = "transparent")), 
     colorkey = list(axis.line = list(col = "black"))) 

solution 1

ソリューション2xlim & ylim

spplot(spdf, col.regions=topo.colors(16), 
     xlim = c([email protected]["x", "min"] - 3, 
       [email protected]["x", "max"] + 3), 
     ylim = c([email protected]["y", "min"] - 3, 
       [email protected]["y", "max"] + 3)) 
の範囲をパディング

solution 2

+0

優れていますが、どちらのソリューションも魅力的でした!ありがとうございました! –

関連する問題