使用ggtext绘制ggplot箱图时,无法显示上标^-1求助
解决ggplot分组箱图中标签上标不显示的问题
问题根源:使用
ggtext的element_markdown()时,Markdown语法里多字符上标需要用大括号{}包裹,你写的kg^-1只会把-识别为上标,1会保留为普通文本,导致显示异常。两种修复方案:
方案1:用Markdown大括号包裹多字符上标
修改scale_x_discrete里的标签,把kg^-1改为kg^{-1}:
#install.packages("ggtext") library(ggtext) ggplot(pesosip,aes(x=Treatment,y=PESO..gr.,fill=Weight.record))+ geom_boxplot()+ ggtitle("C")+ scale_x_discrete(breaks=c("Control (Male)","PTX 60","NCTD 3", "MIX"), labels=c("Control<br>*(M)*","PTX 60 mg kg^{-1} <br>*(F)*", "NCTD 3 mg kg^{-1} <br>*(F)*","MIX<br>*(M)*"))+ scale_fill_discrete(name="Record",labels=c("Initial","Final"))+ theme_classic()+ theme(axis.text.x = element_markdown(),legend.position = "top")+ labs(x="Treatment",y="Weight (g)",fill="Record")
方案2:用HTML的<sup>标签
直接用HTML上标标签包裹需要上标的内容,兼容性更稳定:
#install.packages("ggtext") library(ggtext) ggplot(pesosip,aes(x=Treatment,y=PESO..gr.,fill=Weight.record))+ geom_boxplot()+ ggtitle("C")+ scale_x_discrete(breaks=c("Control (Male)","PTX 60","NCTD 3", "MIX"), labels=c("Control<br>*(M)*","PTX 60 mg kg<sup>-1</sup> <br>*(F)*", "NCTD 3 mg kg<sup>-1</sup> <br>*(F)*","MIX<br>*(M)*"))+ scale_fill_discrete(name="Record",labels=c("Initial","Final"))+ theme_classic()+ theme(axis.text.x = element_markdown(),legend.position = "top")+ labs(x="Treatment",y="Weight (g)",fill="Record")
两种方法都能让-1完整显示为上标,任选其一即可。
内容的提问来源于stack exchange,提问作者Atomix
相关产品推荐
相关产品推荐

