如何在ggplot2中对Y轴标签的部分内容设置粗体和斜体?
解决ggplot2 Y轴标题混合粗体和斜体的问题
你的报错源于ylab()里的expression语法错误——错误使用paste函数且多余调用text函数,导致代码解析失败。要实现Y轴标题中"Bold"为粗体、"(B)"里的B为斜体的效果,正确写法如下:
修正后的完整代码
set.seed(123) df <- data.frame(x.axis = rep(c("A","B","C","D"), each = 50), y.axis = rnorm(200, 1.2, 2)) # 修正样本数:4组×50=200行,原代码1000个值会导致行数不匹配报错 ggplot(aes(x = x.axis, y = y.axis), data = df) + geom_point(color = "gray")+ # 去掉重复的aes映射,全局已设置 stat_summary(fun.data=mean_cl_boot, geom="errorbar", width=0.3, colour="black") + stat_summary(fun.y = mean, color = "black", geom ="point", size = 5,show.legend = FALSE) + theme_classic() + theme(aspect.ratio = 7/5) + geom_hline(yintercept = 1) + ylab(expression(bold("Bold") ~ "index (" ~ italic("B") ~ ")"))
关键说明
expression()是ggplot2实现文本格式混合的核心函数,用bold()包裹需粗体的文本,italic()包裹需斜体的文本~用于在expression中添加空格,若无需空格可改用*拼接文本- 同步修正了原代码中数据框行数不匹配的问题:
rep生成200行数据,原rnorm(1000,...)会因值数量与行数量不一致报错
内容的提问来源于stack exchange,提问作者RPlotter
相关产品推荐
相关产品推荐

