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

如何设置ggplot的scale_x_discrete标签:k斜体+状态文本换行

解决方案

要实现x轴标签中“k”的斜体效果,只需将scale_x_discrete中的labels参数替换为表达式对象,通过expression()结合italic()函数设置斜体,同时保留\n实现换行:

p <- ggplot(chr2snp, aes(x = k.mat, y = calories, fill = k.mat)) +
  geom_boxplot(outlier.size = 0.2) +
  scale_fill_manual(values = c("Absent" = "limegreen", "k.mat" = "royalblue1")) +
  scale_x_discrete(
    limits = c("Absent", "Present"),
    # 修改此处:用expression实现斜体k + 换行
    labels = c(expression(paste(italic(k), "-mat\nAbsent")),
              expression(paste(italic(k), "-mat\nPresent")))
  ) +
  geom_jitter(color = "black", size = 0.0005, alpha = 0.8, width = 0.35) +
  scale_y_log10() +
  theme(text = element_text(size = 15)) +
  xlab(" ") +
  ylab(expression(paste("Cal conc. [µg g" ^-1, "]"))) +
  theme_classic() +
  theme(legend.position = "none", panel.border = element_rect(color = "black", fill = NA, linewidth = 0.5))+
  theme(axis.text.x = element_text(color = "black"))+
  theme(axis.text.y = element_text(color = "black",size=9))

关键说明

  • italic(k):将字母"k"设置为斜体格式
  • paste(..., "\nAbsent"):通过\n实现文本换行,同时将斜体的k与后续文本拼接
  • 表达式对象会被ggplot正确解析为带格式的轴标签,保持原有换行效果的同时实现斜体需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 01:52:33