gpt4 book ai didi

r - ggplot2交错轴标签

转载 作者:行者123 更新时间:2023-12-01 09:53:27 26 4
gpt4 key购买 nike

我正在制作一个 ggplot。 x 轴是因子,标签很长。

我无法缩短标签,它们尽可能短。

我有兴趣使标签垂直偏移。我的偏好是将每个奇数标签放在高度 0 处,每个偶数标签放在离 x 轴更远 2 个单位的高度处。

我看过这里,ggplot-hopeful-help ,但在解释发生的事情时遇到了真正的麻烦,因此无法制作出有用的版本。

有什么想法吗??

(下面的示例代码...我在这里不太擅长格式化代码,看来...sry。)

library("ggplot2"); 
stack <- data.frame(value =rnorm(n = 1000, sd = 2, mean=34)); stack$fact <- as.factor(rep(1:5, each=1000/5));
ggplot(stack, aes(x=fact, y=value)) + geom_boxplot(aes(fill=fact))+ scale_x_discrete(breaks=c("1", "2", "3", "4", "5"), labels=c("hi","don't suggest I shorten the text","I need long labels", "This is a long factor label","This label is very long"))

最佳答案

不管你是否理解,它似乎工作得很好。在你的问题 your_plot 中调用情节:

your_plot + theme(axis.text.x = element_text(vjust = grid::unit(c(-2, 0, 2), "points")))

enter image description here

theme() 中指定首选项是调整 ggplot 陷阱的方法。 axis.text.x 仅修改 x 轴文本,该文本是使用 element_text() 设置的首选项创建的。您可以在 element_text() 中指定字体大小、字体系列、旋转角度等。 vjust 代表“垂直对齐”,因此将 vjust 设置为三个值,-2、0 和 2 会将这些值应用于连续的 x 轴标签。 (显然负数上升了,这让我很惊讶。)

使用 grid::unit() 允许我们指定文本垂直移动的单位(在本例中为点)。查看 ?grid::units 可以发现您可以使用英寸、厘米或其他几个单位。

唯一的问题是与 x 轴标题重叠。我认为解决这个问题的最简单方法是在它之前添加几个换行符 "\n" :

your_plot + 
theme(axis.text.x = element_text(vjust = grid::unit(c(-2, 0, 2), "points"))) +
labs(x = "\n\nfact")

enter image description here

另一种解决方案是旋转文本:

your_plot + theme(axis.text.x = element_text(angle = -90, hjust = 0, vjust = 0))

enter image description here

更多阅读,there's a whole vignette on ggplot2 theming .

关于r - ggplot2交错轴标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33529116/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com