当前位置: 动力学知识库 > 问答 > 编程问答 >

r - Asterisk in ggplot's annotate()

问题描述:

Text can be added to a ggplot object using annotate(). However, I can't figure out how to print an asterisk, since, so far as I understand, the asterisk is used in parsing.

Here is an example. Suppose I ran a nonparametric test, and I want to print the test statistic with its significance level measured in stars. Unfortunately, this does not work:

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***

Defining the label outside the plot object - e.g. lab <- paste0("chi^2 == 2.5","***", sep=""), then calling annotate('text', x = 7, y = 4, label=lab, parse=TRUE) - does not work either.

Is it possible to use the asterisk with annotate()?

Edit Sorry, I neglected to mention that I want the Greek letter to be compiled. Ideally the text would appear as $$chi^2 = 2.50***$$

网友答案:

Using a combination of double and single quotes does the trick:

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)

You can use single quotes for label =, and double quotes for strings you don't want annotate to parse. Anything outside the double quotes but inside the single quotes will be parsed.

分享给朋友:
您可能感兴趣的文章:
随机阅读: