如何设置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
相关产品推荐
相关产品推荐

