无法在ggplot注释中添加希腊字母,其中任何一个:它夹在其他文本之间,或者所讨论的文本包含撇号。
例如,以下工作正常:
df <- data.frame(x = rnorm(10), y = rnorm(10))
temp<-paste("rho == 0.34")
ggplot(df, aes(x = x, y = y)) + geom_point() +
annotate("text", x = mean(df$x), y = mean(df$y), parse=T,label = temp)
但是,当我这样做时,ggplot会爆炸:
df <- data.frame(x = rnorm(10), y = rnorm(10))
temp<-paste("Spearman's rho == 0.34")
ggplot(df, aes(x = x, y = y)) + geom_point() +
annotate("text", x = mean(df$x), y = mean(df$y), parse=T,label = temp)
ggplot对这些特殊字符非常敏感。其他帖子似乎没有解决这个问题(如果没有,请道歉)。提前谢谢。
答案 0 :(得分:5)
我感到沮丧。除了使用expression
作为@baptiste评论的标签外,诀窍是将您的标签as.character
传递给ggplot
。
df <- data.frame(x = rnorm(10), y = rnorm(10))
temp <- expression("Spearman's"~rho == 0.34)
ggplot(df, aes(x = x, y = y)) +
geom_point() +
annotate("text", x = mean(df$x), y = mean(df$y),
parse = T, label = as.character(temp))
答案 1 :(得分:1)
如果有人试图在事先不知道相关变量的动态场景中采用此方法,您还可以使用以下方法将表达式的转义版本创建为字符串:
label, span {
display: block;
margin: 5px;
}