如何在 ggplot2 中添加轴文本,包括正确居中的符号和换行符

问题描述 投票:0回答:1

我正在尝试在 ggplot2 中创建一个散点图,它具有通常的数字轴标签,但它下面的一些帮助文本解释了在图上更靠左或更靠右的含义。问题是我想同时包含箭头和换行符,但我似乎无法同时执行这两项操作,同时将轴标签居中于网格线下方。

也许我的处理方式是错误的,并且有一个更简单的解决方案,但这就是我到目前为止所拥有的。

成功将标签包含在轴文本下方,居中:

library(ggplot2)

data(cars)

ggplot(data=cars,aes(x=speed,y=dist))+
  geom_point() +
  scale_x_continuous(name="",labels=c("5\nLower speed","15","25\nHigher speed"),breaks=c(5,15,25))

enter image description here

成功在轴文本中添加箭头,居中:

ggplot(data=cars,aes(x=speed,y=dist))+
  geom_point() +
  scale_x_continuous(name="",labels=c(expression(""%<-%"5"),"15",expression("25"%->%"")),breaks=c(5,15,25))

enter image description here

尝试将两者结合起来,但它没有居中:

ggplot(data=cars,aes(x=speed,y=dist))+
  geom_point() +
  scale_x_continuous(name="",labels=c(expression("5\n"%<-%"Lower speed"),"15",expression("25\nHigher speed"%->%"")),breaks=c(5,15,25))

enter image description here

将 hjust=0.5 添加到主题中的 axis.text.x 没有帮助。

有什么建议吗?

r ggplot2 expression axis-labels
1个回答
0
投票

一种选择是使用 unicode 符号来添加箭头:

library(ggplot2)

data(cars)

ggplot(data = cars, aes(x = speed, y = dist)) +
  geom_point() +
  scale_x_continuous(
    name = "",
    labels = c("\u2190 5\nLower speed", "15", "25 \u2192\nHigher speed"),
    breaks = c(5, 15, 25)
  )

© www.soinside.com 2019 - 2024. All rights reserved.