3

bubbleパッケージの関数を使用してデータをプロットし、レイヤーspを追加したいと思います。SpatialPolygonsを使用してデータを簡単にプロットできますspplotが、何らかの理由で では機能しませんbubble。例えば:

library(sp)
# Create SpatialPolygons
Sr1 <- Polygon(cbind(c(2,4,4,1,2),c(2,3,5,4,2)))
Srs1 <- Polygons(list(Sr1), "s1")
SpP <- SpatialPolygons(list(Srs1))
# Create SpatialPointsDataFrame
pp <- data.frame(x1=2:4,x2=2:4,att=2:4)
coordinates(pp) <- ~x1+x2
# Plot using spplot
spplot(pp, sp.layout=list("sp.polygons", SpP, fill="blue"))
# Plot using bubble
bubble(pp, sp.layout=list("sp.polygons", SpP, fill="blue")) 

を に変換することでこれを行ったSpatialPolygonsSpatialLinesいますが、ggplot2 を介して実行できるように見えますが (投稿を参照)、なぜバブル プロットが で機能しないのか混乱していSpatialPolygonsます。それを機能させるためのトリックはありますか?

4

2 に答える 2

2

回避策は、カスタム パネル関数を使用することです。

bubble(pp, "att",
       panel=function(...) {
         sp.polygons(SpP, fill="blue")
         sp:::panel.bubble(...)
       }) 

バブル

于 2015-06-08T21:49:51.540 に答える
0

あなたspplotの が機能しない理由はわかりませんが、これはまさにggplot's の路地です。

library(sp)
library(ggplot2)

Sr1 <- Polygon(cbind(c(2,4,4,1,2),c(2,3,5,4,2)))
Srs1 <- Polygons(list(Sr1), "s1")
SpP <- SpatialPolygons(list(Srs1))

pp <- data.frame(x1=2:4,x2=2:4,att=2:4)

spdf <- SpatialPolygonsDataFrame(SpP, data=data.frame(row.names="s1", val=1))
sp_map <- fortify(spdf)

gg <- ggplot()
gg <- gg + geom_map(data=sp_map, map=sp_map,
                    aes(x=long, y=lat, map_id=id), 
                    color="black", fill="blue")
gg <- gg + geom_point(data=pp, aes(x=x1, y=x2, size=att), color="orange")
gg <- gg + scale_size_continuous(range=c(5,10))
gg <- gg + coord_equal(ylim=c(1.5,5), xlim=c(1,4.5))
gg <- gg + labs(x=NULL, y=NULL)
gg <- gg + theme_bw()
gg <- gg + theme(panel.grid=element_blank())
gg <- gg + theme(panel.border=element_blank())
gg

ここに画像の説明を入力

(バブルの x と y を間違えたかもしれません)

このようにして、(IMO)美学をより適切に制御できます。

于 2015-06-08T20:38:10.330 に答える