首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cowplot时减少绘图之间的页边距

使用cowplot时减少绘图之间的页边距
EN

Stack Overflow用户
提问于 2017-01-25 01:02:33
回答 1查看 12K关注 0票数 9

我想使用cowplot将一些图表组合在一起。但我不能更改边距大小。我只想使用一个y轴,但是边距仍然很大,我想减小它。我使用了来自ggplot的plot.margin代码,虽然当我查看单个图时,它可以工作,但当图组合在一起时,它似乎不起作用。

我做了一些示例代码:

代码语言:javascript
复制
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

我知道我可以通过使用刻面来避免这个问题,但是我真正的图比这个图要复杂得多。

EN

回答 1

Stack Overflow用户

发布于 2017-05-01 10:26:14

你的plot.margin实际上对你不利。将它们设置为零以填充该空白区域。

代码语言:javascript
复制
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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41834093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档