带有 facet_wrap 的数学符号显示不正确

问题描述

我有一些数据想要获取密度图。对于每个方面,我想使用个性化的数学表达式,但不幸的是,使用 Tex 函数无法正确显示:

ggplot(data = x,aes(x=.data[[clinical_factor]],y=LBORRES,color=.data[[clinical_factor]]))+
      geom_violin()+theme_bw()+
      facet_wrap (~POPULATION,ncol=2,scales = "free_y",labeller = labeller(POPULATION = as_labeller(latex2exp::TeX)))
head(x)
   DISEASE LBORRES              POPULATION  OMIC_ID
1:     SjS     273               Monocytes 32140214
2:     SjS       0                    LDGs 32140214
3:     SjS       3  CD4$^+$CD8$^+$ T cells 32140214
4:     SjS       8 Non classical monocytes 32140214
5:     SjS    2490             Neutrophils 32140214
6:     SjS     146                 B Cells 32140214

这是输出:

Density plots with bad Latex display

你知道如何用 facet wrap 处理 Math Latex 符号吗?

解决方法

我没有在您的 POPULATION 变量中看到数学公式,不过,这可能对您有所帮助:

library(ggplot2)
library(latex2exp)

df <- data.frame(DISEASE=rep(c('SjS','Control'),each=1000),LBORRES=matrix(rnorm(2000),ncol=1),POPULATION=sample(LETTERS[1:6],2000,replace=T,prob=c(0.15,0.15,0.25)))

#assign labels to the variable you want to use latex2exp:

df$POPULATION <- factor(df$POPULATION,labels=c('A'=parse(text=TeX('Monocyte $\\beta^2$')),'B'=parse(text=TeX('CD4+CD8+T cells$\\frac{a^2}{b}$')),'C'=parse(text=TeX('LDGs $\\alpha^2$')),'D'=parse(text=TeX('Non classical monocytes $\\mu^2$')),'E'=parse(text=TeX('Neutrophils $\\gamma^2$')),'F'=parse(text=TeX('B cells $\\alpha^3$'))))
                        
ggplot(data = df,aes(x=DISEASE,y=LBORRES,color=DISEASE))+
  geom_violin()+theme_bw()+
  facet_wrap (~POPULATION,ncol=2,scales = "free_y",labeller=label_parsed)

这会给你类似的东西

enter image description here

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...