r - 更改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)
显然,点图正在窃取所有图形空间,因此我的热图没有出现在图中。
解决方案
rel_widths=
TL; DR - 你需要使用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))
推荐阅读
- azure - 为什么我看到错误应用程序名称在 wordpress 网站创建中不可用
- api - Azure devops 连接到 d365 业务中心
- swift - 很快,有没有办法使用通过 OAuth2 库获得的令牌登录网站?
- c# - 从 MIME Multipart 文件中提取 XML 对象
- html - 为多个社交网络(Mac、Window)添加元标记 og:title 和上标®
- r - 如何在R中有效地找到高于阈值的最长值序列
- spring-boot - 在 Spring Boot 中集成 Liquibase Groovy DSL
- amazon-web-services - 让 cloudformation 等到在 s3 中创建对象
- mysql - 使用增加的内容大小更新博客时出现 414.shtml 错误
- sql - 在 Select 查询中使用 Like 运算符与来自另一个 Select 查询的结果