更改 ggplot 中绘图的大小(宽度)
Change size (width) of plot in ggplot
我是一个新手,试图改变 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)
很明显,点图偷走了所有的图space,所以我的热图没有出现在图中。
TL;DR - 您需要使用 plot_grid()
的 rel_widths=
参数。让我用 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()
的默认行为,这使得两个图具有相同的 width/relative 大小:
plot_grid(p1,p2)
使用rel_widths=
调整绘图的相对宽度:
plot_grid(p1,p2, rel_widths=c(1,0.3))
我是一个新手,试图改变 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)
很明显,点图偷走了所有的图space,所以我的热图没有出现在图中。
TL;DR - 您需要使用 plot_grid()
的 rel_widths=
参数。让我用 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()
的默认行为,这使得两个图具有相同的 width/relative 大小:
plot_grid(p1,p2)
使用rel_widths=
调整绘图的相对宽度:
plot_grid(p1,p2, rel_widths=c(1,0.3))