8

facet_gridまたはfacet_wrapと組み合わせて使用​​しようとしていgeom_rasterます。ただし、各パネルのz美的スケールは異なります。例えば、

##Data at end of question
ggplot(dd, aes(x,y)) +
    geom_raster(aes(fill=z)) +
    facet_grid(type ~ var)

与える

ここに画像の説明を入力.

ただし、C と D の平均値はそれぞれ 0 と 100 付近であるため、多くの解像度が失われます。あなたも試すことができます:

##Change C to D to get other panel
ggplot(subset(dd, var=="C"), aes(x,y))+
    geom_raster(aes(fill=z)) + 
    facet_grid(type ~ var) + 
    theme(legend.position="bottom") 

を与える

ここに画像の説明を入力

ここに画像の説明を入力

しかし、今では 2 つの y ストリップがあります。

質問

  1. 最初のプロットを変更して、fill美学の 2 つの伝説を示すことはできますか?
  2. または、2 つの別々のグラフを作成する場合、プロットの 1 つの y ストリップを削除して、それらを一緒に押すことができますか? テーマをいじって、これが不可能であることを示唆しています。

データ

グラフを再現するデータ

dd = expand.grid(x=1:10, y=1:10)
dd = data.frame(dd, type=rep(LETTERS[1:2], each=100), 
           var =rep(c("C", "D"), each=200) )
dd$z = rnorm(400, rep(c(0, 100), each=200))
4

1 に答える 1

7

これはどうですか:

ここに画像の説明を入力

library(gridExtra)
p1 <- ggplot(subset(dd, var=="C"), aes(x,y))+
  geom_raster(aes(fill=z)) + facet_grid(type ~ var) + 
  theme(legend.position="bottom", plot.margin = unit(c(1,-1,1,0.2), "line"))
p2 <- ggplot(subset(dd, var=="D"), aes(x,y))+
  geom_raster(aes(fill=z)) + facet_grid(type ~ var) + 
  theme(legend.position="bottom", plot.margin = unit(c(1,1,1,-0.8), "line"),
        axis.text.y = element_blank(), axis.ticks.y = element_blank()) + ylab("")
grid.arrange(arrangeGrob(p1, p2, nrow = 1))

で遊んでみるのもいいかもしれませんplot.margin。そして、あなたの最初の質問に対する否定的な答えがここにあるようです。

于 2012-09-24T16:32:24.413 に答える