ggplot2中facet_wrap( )的高阶用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ggplot2中facet_wrap( )的高阶用法相关的知识,希望对你有一定的参考价值。

参考技术A 介绍ggplot2中facet_wrap( )函数中labeller 参数的用法

labeller参数,可以使用它来处理太长的facet标签

同时显示变量名称与因子值

显示因子值

显示变量名称+因子值

labeller参数转化添加希腊字母

在 ggplot/ggplotly 中使用 facet_wrap 时如何防止 y 轴挤压标签?

【中文标题】在 ggplot/ggplotly 中使用 facet_wrap 时如何防止 y 轴挤压标签?【英文标题】:How to prevent the y-axis from squishing the labels when using facet_wrap in ggplot/ggplotly? 【发布时间】:2021-12-07 14:16:49 【问题描述】:

在我的示例中,我试图让 y 轴上的标签不被挤压在一起。有没有办法使用 ggplot2 或 ggplotly 来做到这一点?这是一个可重现的示例:

mpg2 <- subset(mpg, manufacturer %in% c("audi", "chevrolet", 
"dodge","ford","honda","hyundai","jeep","land rover","lincoln","mercury","nissan", "pontiac", 
 "subaru",  "volkswagen"))

base <- ggplot(mpg2, aes(displ, hwy)) + 
geom_blank() + 
xlab(NULL) + 
ylab(NULL)
ggplotly(base + facet_wrap(~manufacturer, ncol = 1))

请注意:我不想让 ncol 超过 1。我想保持这种方式。我试图防止它被挤在一起。谢谢!

【问题讨论】:

没有空间了。 有没有办法减小y标签本身的大小? 是的,base + theme(axis.text.y=element_text(size=rel(0.5))。将rel 值设置为您想要的任何值。您还可以相对于水平尺寸增加输出图的垂直尺寸。如何做到这一点取决于您使用的输出方法。 抱歉,我指的是 y_axis 上的实际数字。这只是改变y轴标题的大小吗?对于造成的混乱,我深表歉意。 没关系,这似乎有效。谢谢! 【参考方案1】:

感谢@eipi10 的评论

mpg2 <- subset(mpg, manufacturer %in% c("audi", "chevrolet", 
"dodge","ford","honda","hyundai","jeep","land rover","lincoln","mercury","nissan", "pontiac", 
 "subaru",  "volkswagen"))

base <- ggplot(mpg2, aes(displ, hwy)) + 
geom_blank() + 
xlab(NULL) + 
ylab(NULL)

ggplotly(base + facet_wrap(~manufacturer, ncol = 1) + theme(axis.text.y=element_text(size=rel(0.5)))

【讨论】:

以上是关于ggplot2中facet_wrap( )的高阶用法的主要内容,如果未能解决你的问题,请参考以下文章

在 R 中使用带有 facet_wrap 的 ggplot2 显示多个轴标签

在 ggplot2 的 facet-grid/facet_wrap 中调整面板的相对空间

在 R 的 ggplot2 中一起使用 stat_function 和 facet_wrap

如何使用 ggplot2 删除 facet_wrap 图中的额外列?

使用 R 中 ggplot2 的 facet_wrap 功能对多个数据集进行箱线图比较?

R语言可视化包ggplot2包使用facet_wrap绘制多面板图(子图)实战