You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否为ggplot2的X轴标题添加带圆角的边框?

在ggplot2中实现带副标题的X轴标题样式

你的基础绘图代码如下:

library(ggplot2)

data <- data.frame(x = c(1, 2, 3, 4, 5), y = c(5, 4, 3, 2, 1))
ggplot(data, aes(x = x, y = y)) +
  geom_point() +
  labs(x = "X-Axis Title", y = "Y-Axis Title") +
  theme(axis.title.x = element_text(size = 12, color = "black", face = "bold", hjust = 0.5, vjust = -0.2, angle = 0))

你需要的是主标题下方带有一行小号副标题的X轴标题样式(主标题加粗醒目,副标题字号更小用于补充说明,比如单位),这个效果完全可以实现,推荐两种实用方法:

方法1:用原生表达式实现分行

通过atop()函数创建上下分行的标题,结合主题设置调整样式:

ggplot(data, aes(x = x, y = y)) +
  geom_point() +
  labs(
    x = expression(atop("X轴主标题", paste("(单位: 米)"))),
    y = "Y轴标题"
  ) +
  theme(
    axis.title.x = element_text(
      size = 12, face = "bold", hjust = 0.5,
      margin = margin(t = 10) # 调整标题与轴的间距
    )
  )

注:这种方法对两行文本的样式区分(如字号)支持有限,若需要更精细的样式控制,推荐方法2。

方法2:用ggtext包支持markdown格式(更灵活)

ggtext允许在ggplot文本元素中使用markdown/html语法,能自由设置两行文本的字号、颜色等:

  1. 先安装并加载包:
install.packages("ggtext")
library(ggtext)
  1. 绘制图形:
ggplot(data, aes(x = x, y = y)) +
  geom_point() +
  labs(
    x = "**X轴主标题**<br><span style='font-size:10pt; color:#666666;'>单位: 米</span>",
    y = "Y轴标题"
  ) +
  theme(
    axis.title.x = element_markdown(hjust = 0.5, margin = margin(t = 10)),
    axis.title.y = element_text(size = 12, face = "bold")
  )

这种方法可以精准匹配你想要的样式,支持自定义副标题的字号、颜色、字体等细节。

内容的提问来源于stack exchange,提问作者Canovice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 22:01:01