ggplot的annotate()中的星号

时间:2016-10-24 00:02:43

标签: r ggplot2

可以使用ggplot将文本添加到annotate()对象。但是,我无法弄清楚如何打印星号,因为据我所知,星号用于解析。

这是一个例子。假设我运行了一个非参数测试,我想打印测试统计量,其显着性水平用星号测量。不幸的是,这不起作用:

library(ggplot2)
ggplot(iris, aes(Sepal.Length, Sepal.Width, color=Species)) + 
  geom_point() + 
  annotate('text', x = 7, y = 4, label="chi^2 == 2.50***", parse=TRUE)

Error in parse(text = as.character(lab)) : <text>:1:16: unexpected '*'
1: chi^2 == 2.50***

在绘图对象外定义标签 - 例如lab <- paste0("chi^2 == 2.5","***", sep=""),然后调用annotate('text', x = 7, y = 4, label=lab, parse=TRUE) - 也不起作用。

是否可以将星号与annotate()一起使用?

编辑抱歉,我忽略了提到希望编写希腊字母。理想情况下,文本将显示为$$ chi ^ 2 = 2.50 *** $$

1 个答案:

答案 0 :(得分:4)

使用双引号和单引号的组合可以解决问题:

library(ggplot2)
ggplot(iris, aes(Sepal.Length, Sepal.Width, color=Species)) + 
  geom_point() + 
  annotate('text', x = 7, y = 4, label='chi^2 == "2.50***"', parse=TRUE)

您可以对label =使用单引号,对不希望annotate解析的字符串使用双引号。双引号之外但在单引号内的任何内容都将被解析。

enter image description here