打破 R 中的轴标签(使用 sjp.frq 函数)

break axis labels in R (Using sjp.frq function)

我正在使用 sjp.frq 函数制作一些频率图,但轴标签太大,我想将它们分成两行。 表明轴标签一个位于另一个之上。我该如何更改?

感谢您的帮助!

library(sjPlot)
library(sjmisc)

set_theme(base = theme_classic(),  axis.title.size = 0,  geom.label.size = 4.5, 
                  axis.textsize.x = 1.1, axis.textsize.y = 1.1 )

sjp.frq(base$x, type = c("bar"), sort.frq = c("desc"), geom.colors = "grey")

虽然没有给出示例数据,但这里有两个可能有效的修复方法

library(sjPlot)
library(sjmisc)

set_theme(base = theme_classic(),  axis.title.size = 0,  geom.label.size = 4.5, 
                  axis.textsize.x = 1.1, axis.textsize.y = 1.1 )

sjp.frq(base$x, type = c("bar"), sort.frq = c("desc"), geom.colors = "grey",coord.flip =TRUE) #Flip the corrdinate and check if that avoids the overlap.

如果上述方法不起作用,请尝试按如下方式设置 axis.angle.x 参数

library(sjPlot)
library(sjmisc)

set_theme(base = theme_classic(),  axis.title.size = 0,  geom.label.size = 4.5, 
                  axis.textsize.x = 1.1, axis.textsize.y = 1.1,axis.angle.x = 45 )#this should slant the text to avoid the overlap

sjp.frq(base$x, type = c("bar"), sort.frq = c("desc"), geom.colors = "grey")

另外,如果你想把长标签换成更多行,你可以使用wrap.labels参数:

sjp.frq(base$x, wrap.labels = 10)

或者您更改轴标签的角度。 sjp.frq() returns 一个 data 和一个 plot 对象,因此您可以轻松添加 ggplot-layers,或添加像 label_angle():

这样的函数
sjp.frq(efc$e42dep)$plot + label_angle(90)