私の問題のサンプルデータが含まれていないことをお詫びします。サンプルのシェープファイルを簡単に作成する方法が見つかりませんでした。うまくいけば、の経験豊富なユーザーはggplot、以下の説明から私がやりたいことを見ることができます。
私が持っている:
サンプルプロットに関する
data.frame情報をplotid含むXvar1(、、、、、、…)var2var3var4Yサンプルプロットの空間情報を含むポリゴンシェープファイル
シェープファイルY(with maptools)とfortifying as data.frame Z(ggplot2)のインポートは正常に機能します。melt同様XにX_meltedうまく機能します。merge-ingZとX_meltedtoも同様にmapdf機能します。
つまり、空間情報と、、、、…</p>を含む長いdata.frame形式var1ができ
ました。var2var3
次に、このデータフレームを次のようにプロットします。
pl1 <- ggplot(mapdf,aes(long,lat),group=group)
pl1 <- pl1 + geom_polygon(aes(group=group,fill=value),colour="black")
pl1 <- pl1 + facet_grid(variable ~ .)
pl1 <- pl1 + coord_equal(ratio = 1)
pl1
結果は、変数ごとに1つのパネルを持つ素晴らしいプロットです。パネルのマップは同じですが、塗りつぶしの色は変数の値によって異なります。これまで、すべてが魅力のように機能します…1つの問題があります:
変数の最小値と最大値は異なります。たとえば、から、から、、var1から、などになります。この例では、塗りつぶしの色の凡例はからになります。きれいに描かれていますが、基本的に同じ色です。05var20400var35100400var2var1var3
ファセットのパネルごとに異なる凡例を使用する方法はありますか?それとも、これは(まだ)一緒にfacet_wrapまたはfacet_gridで不可能ggplotですか?
変数ごとに個別のプロットを作成し、それらをビューポートと結合することもできますが、変数がたくさんあるため、これは大変な作業になります。
それとも、やりたいことを達成するために使用できる別のパッケージや方法はありますか?
そして、助けていただければ幸いです。:)
編集:ggplot2-packageの説明を使用して、問題を説明する例を作成しました。
ids <- factor(c("1.1", "2.1", "1.2", "2.2", "1.3", "2.3"))
values <- data.frame(
id = ids,
val1 = cumsum(runif(6, max = 0.5)),
val2 = cumsum(runif(6, max = 50))
)
positions <- data.frame(
id = rep(ids, each = 4),
x = c(2, 1, 1.1, 2.2, 1, 0, 0.3, 1.1, 2.2, 1.1, 1.2, 2.5, 1.1, 0.3,
0.5, 1.2, 2.5, 1.2, 1.3, 2.7, 1.2, 0.5, 0.6, 1.3),
y = c(-0.5, 0, 1, 0.5, 0, 0.5, 1.5, 1, 0.5, 1, 2.1, 1.7, 1, 1.5,
2.2, 2.1, 1.7, 2.1, 3.2, 2.8, 2.1, 2.2, 3.3, 3.2)
)
values <- melt(values)
datapoly <- merge(values, positions, by=c("id"))
p <- ggplot(datapoly, aes(x=x, y=y)) + geom_polygon(aes(fill=value, group=id),colour="black")
p <- p + facet_wrap(~ variable)
p
右側のパネルはvar2、マップ上ののさまざまな値を示しています。ただし、左側のパネルでは、すべてのポリゴンが同じ色になっています。すべてのパネルに1つのカラーグラデーションのみが使用されるため、これは論理的です。パネルごとに異なるカラーグラデーションを使用できますか?