geom_text中的数学符号错误

4

在文本中插入数学符号应该不是那么复杂,我想!

然而,即使查看类似的例子 ggplot2 facet_wrap with mathematical expression, 我仍然无法将Ω(Omega)符号插入到geom_text中!

假设您有基本散点图,并且您想为每个面板添加带有(Omega)数学符号的平均值。

mean.Petal <- aggregate(iris["Petal.Width"], iris["Species"], mean)
    Species     Petal.Width
1     setosa       0.246
2 versicolor       1.326
3  virginica       2.026

ggplot(iris) +
  geom_point(aes(y=Sepal.Length,x=Sepal.Width ,col=factor(Species))) + 
  facet_wrap(~ Species)+
  geom_text(data = mean.Petal, parse = TRUE,
            aes(x = 4.5, y = 7, label=sprintf('mean_Petal=%.2f %s', 
                                               round(Petal.Width,digits=2),'Omega')))

解析错误(text = as.character(lab)) : :1:17: 意外的符号 1: mean_Petal=0.25 Omega

再试一次

geom_text(data = mean.Petal, parse = TRUE,
          aes(x = 4.5, y = 7, label=paste('mean_Petal=', 
                                  round(Petal.Width,digits=2),expression(Omega),sep=' ')))

在解析(text = as.character(lab))时发生错误::1:18:意外符号 1:mean_Petal = 0.25 Omega

此错误可能是由于代码中出现了无效的标点符号或缺失的引号导致的。请检查并修复代码。

以下是Omega符号的代码。geom_text(data = mean.Petal, parse = TRUE, aes(x = 2.5, y = 7, label=paste('mean_Petal=', expression(Omega), sep=' '))) - kangaroo_cliff
你使用 round(Petal.Width, digits=2) 的目的是什么? - kangaroo_cliff
@DiscoSuperfly 谢谢。round(Petal.Width,digits=2) 我需要在“omega”之前的平均值。所以我需要它们! - Alexander
1个回答

11

当使用geom_text时,若parse=TRUE,你需要组合一个字符串来对应于plotmath表达式,因此可以这样做:

ggplot(iris) +
    geom_point(aes(y=Sepal.Length,x=Sepal.Width ,col=factor(Species))) + 
    facet_wrap(~ Species)+
    geom_text(data = mean.Petal, parse = TRUE,
              aes(x = 3, y = 7, 
                  label=paste("'Mean petal' ==", round(Petal.Width, digits=2), "* Omega")))

1
谢谢。这正是我在寻找的! - Alexander

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接