2017-01-24 9 views
3

私はいくつかのグラフをcowplotを使って組み合わせたいと思っています。しかし、私は余白のサイズを変更することはできません。私は1つのy軸だけを使用したいが、マージンよりもかなり大きく、これを減らしたい。私はggplotのplot.marginコードを使用しましたが、これは単一のプロットを見ると機能しますが、プロットが結合されても機能しないようです。cowplotを使用しているときにプロット間のマージンを減らす

私はいくつかのサンプルコードを作っています

library(ggplot2) 
library(cowplot) 

x <- c("a", "b") 
y1 <- c(3,6) 
y2 <- c(10,15) 
data1 <- data.frame(x,y1) 
data2 <- data.frame(x, y2) 

ylab1 <- ylab("Very nice y values") 
xlab1 <- xlab("Very nice factors") 

plot1 <- ggplot(data1, aes(x=x, y = y1)) +  
geom_bar(stat ="identity", position=position_dodge(), fill = "grey")+ 
theme(plot.margin = unit(c(0.5,0.5,0.5,0.5), "cm")) + xlab1 + ylab1 
plot1 

ylab2 <- ylab("") 
xlab2 <- xlab("Very nice factors") 

plot2 <- ggplot(data2, aes(x=x, y = y2)) +  
geom_bar(stat = "identity",position=position_dodge(), fill = "grey")+ 
theme(plot.margin = unit(c(0.5,0.5,0.5,-0.5), "cm")) + xlab2 + ylab2 
plot2 

plot3 <- plot_grid(plot1, plot2, labels = c("A", "B"), align = "hv",nrow = 1, ncol = 2) 

plot3 # Quite large margin between the two plots 

私はしかし、私の本当のプロットは、このグラフではなく、より複雑で、ファセットを使用することで、この問題を回避することができることを承知しています。

答えて

0

plot.marginさんが実際にあなたに対処していました。その空白を埋めるためにゼロに設定します。

plot1 <- ggplot(data1, aes(x=x, y = y1)) +  
    geom_bar(stat ="identity", position=position_dodge(), fill = "grey")+ 
    theme(plot.margin = unit(c(0,0,0,0), "cm")) + xlab1 + ylab1 
plot1 

ylab2 <- ylab("") 
xlab2 <- xlab("Very nice factors") 

plot2 <- ggplot(data2, aes(x=x, y = y2)) +  
    geom_bar(stat = "identity",position=position_dodge(), fill = "grey")+ 
    theme(plot.margin = unit(c(0,0,0,0), "cm")) + xlab2 + ylab2 
plot2 

plot3 <- plot_grid(plot1, plot2, labels = c("A", "B"), align = "hv",nrow = 1, ncol = 2) 

plot3 

enter image description here

関連する問題