温馨提示:本文翻译自stackoverflow.com,查看原文请点击:r - Change size (width) of plot in ggplot
ggplot2 heatmap plot r

r - 更改ggplot中图的大小(宽度)

发布于 2021-04-17 21:42:19

我是一个新手,尝试更改ggplot的宽度,以便可以在同一图中排列不同的图(热图和点图)。但是,经过数小时的尝试来减小点图的宽度之后,我将放弃。

热图代码(可能不相关):

heatmap_GO_NES_1<-ggplot(data=long_frame_GO_NES_1) +
  geom_tile(mapping = aes(
    x = factor(timepoint,levels = c("6h","12h","24h")),
    y =bio_process,fill = NES)) +
  ylab(label="Biological process") + 
  theme(axis.title.x=element_blank()) +
  scale_fill_gradient(low="red",high="green")+
  facet_grid( group ~. , scales="free",space="free")+
  theme(axis.text.x = element_text(angle = 90))+
  theme(strip.text.y = element_text(size = 8))

heatmap_GO_NES_1

在此处输入图片说明

点图代码:

dot_GO_NES_1<- ggplot(data=long_frame_GO_NES_2)+
  geom_count(mapping=aes(x=timepoint, y =bio_process, size=setsize))+
  theme(axis.title.x=element_blank(), axis.text.x=element_blank(),
    axis.ticks.x=element_blank(),axis.title.y=element_blank(),
    axis.text.y=element_blank(),axis.ticks.y=element_blank())

dot_GO_NES_1

在此处输入图片说明

图形代码:

plot_grid(heatmap_GO_NES_1,dot_GO_NES_1)

在此处输入图片说明

显然,点图正在窃取所有图形空间,因此我的热图未显示在图形中。

查看更多

提问者
Rikki Franklin Frederiksen
被浏览
0
chemdork123 2020-07-08 00:24

TL; DR-你需要使用的rel_widths=参数plot_grid()让我用一个例子说明mtcars

# Plots to display
p1 <- ggplot(mtcars, aes(mpg, disp)) + geom_point()

p2 <- ggplot(mtcars, aes(x='X', y=disp)) + geom_point(aes(size=cyl))

这是一些情节,你所看到p2的就像你的情节...不应太宽或看起来很荒谬。这是的默认行为plot_grid(),这使两个图均具有相同的宽度/相对大小:

plot_grid(p1,p2)

在此处输入图片说明

使用以下命令调整图的相对宽度rel_widths=

plot_grid(p1,p2, rel_widths=c(1,0.3))

在此处输入图片说明