【问题标题】:Using subscript in ggboxplot在 ggboxplot 中使用下标
【发布时间】:2019-12-07 16:01:12
【问题描述】:

我正在尝试绘制一些数据,我的一个实验组名为 SiO₂。我使用 read.table 加载 .txt 数据表,然后使用 colnames()

colnames(cells_df2) <- c("ID","Ctrl","SiO\u2082","pSLG","fSLG")

这是我的数据的一个子集。

head(cells_df2)
ID     Ctrl  SiO2     pSLG     fSLG
1  1  5.68565  9.48 14.77580 33.04500
2  2  6.79996 32.00 14.35580 33.04500
3  3 21.77180  8.14 16.49780  7.61765
4  4 16.30750  8.14  1.87977  7.61765
5  5 11.16920 19.20  5.54189 28.47990
6  6 11.31430  8.26 15.59490 28.47990

然后,我gathered 这个data.frame

Cells_tidy3<-gather(cells_df2,"group","ym",-ID)
  ID group       ym
1  1  Ctrl  5.68565
2  2  Ctrl  6.79996
3  3  Ctrl 21.77180
4  4  Ctrl 16.30750
5  5  Ctrl 11.16920
6  6  Ctrl 11.31430

最后我把它们画出来了

ggboxplot(Cells_tidy3,"group","ym")

我曾尝试使用expressionparsestringi 包但结果很少。

如果我要capabilities()

jpeg         png        tiff       tcltk         X11        aqua    http/ftp 

TRUE        TRUE        TRUE        TRUE       FALSE       FALSE`    TRUE 

sockets      libxml        fifo      cledit       iconv         NLS   profmem

TRUE        TRUE        TRUE        TRUE        TRUE        TRUE        TRUE

cairo         ICU long.double     libcurl 

TRUE        TRUE        TRUE        TRUE 

然后我尝试了:

png()
ggplot(az, aes(x = "SiO\u2082", y = value)) + 
geom_boxplot() +
xlab("")
dev.off()

导致此图的原因

【问题讨论】:

  • str(az)检查你的数据,看看数值列是作为数字还是因子读入的。
  • 这是结果 data.frame': 4 obs。 2 个变量:$ SiO2:因子 w/ 1 级“ciao”:1 1 1 1 $ 值:int 1 2 3 4
  • 所以你正在绘制一个因子的箱线图(不是条形图),ciao 只有一个级别,它的所有值都是相等的。这就是你得到那个情节的原因。
  • @RuiBarradas 如果你愿意,我可以用真实数据集代替这个例子
  • 我的问题是如何获得SiO₂而不是SiO□

标签: r ggpubr


【解决方案1】:

以下作品。它使用ggplot 后跟geom_boxplot,而不是ggpubr::ggboxplot

library(ggplot2)

az <- subset(iris[5:4], Species == "virginica")
az[[1]] <- droplevels(az[[1]])
names(az) <-c("SiO\u2082","value")

ggplot(az, aes(x = "SiO\u2082", y = value)) + 
  geom_boxplot() +
  xlab("")

使用包ggpubr,问题在于您如何gathered 数据。列"value" 变成了一个列,其值为az 中的前一个列名,即"ciao"

library(tidyr)
library(ggpubr)

azz <- az %>% gather(group, key, -value)
ggboxplot(azz, x = "group", y = "value")

【讨论】:

  • @pietroesposito 不,不是作为评论,请在问题中。并通过ggpubr查看编辑。
  • 如果我同时使用你的代码,ggplot 和 ggpubr 我得到 SiO□
  • @pietroesposito 如您所见,两个图都正确显示了下标,因此您的系统一定有问题。 capabilities() 返回什么?如果您在绘图前使用png() 和紧随其后使用dev.off() 写入设备,那么图形文件中有什么内容?
  • 我用您要求的信息重新编辑了我的问题。
  • @pietroesposito 这似乎是一个系统问题。试试安装X11?另外,看看这些帖子是否有帮助:R-bloggers、SO 12
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-20
  • 2018-08-06
  • 2022-01-24
  • 1970-01-01
  • 2021-08-15
  • 2019-11-09
  • 2021-03-24
相关资源
最近更新 更多