Это работает, но это не дает вам запятой, потому что запятая сбивает парсер формулы.
library(ggplot2)
set.seed(123)
n <- 100
data <- data.frame(x=(40+10*rnorm(n)),y=-0.2+0.5*rnorm(n))
ggplot(data)+
geom_point(aes(x,y),shape=1,size=4)+
stat_smooth(method="lm",size=0.6,se=FALSE,colour="black")+
annotate("text",x=c(30,37),y=c(0.45,0.43),label=c("italic(r^{2}==0.151)","p==0.226"),
parse=TRUE) +
theme_bw(base_size = 12)
Вот график.
Примечание ваша ошибка приходит потому, что вы даете ему вектор длины 2 в вашей команде annotate
, но x
и y
параметр имеет только длину 1. я настроил их, но это было бы лучше, как одна строка, я думаю.
Чтобы получить запятая вы можете разбить его на два annotate
слоев как Тхи:
library(ggplot2)
set.seed(123)
n <- 100
data <- data.frame(x=(40+10*rnorm(n)),y=-0.2+0.5*rnorm(n))
ggplot(data)+
geom_point(aes(x,y),shape=1,size=4)+
stat_smooth(method="lm",size=0.6,se=FALSE,colour="black")+
annotate("text",x=30,y=0.45,label="italic(r^{2}==0.151)", parse=T) +
annotate("text",x=36,y=0.43,label=", p==0.226",parse=F) +
theme_bw(base_size = 12)
Уступая это:
Но я лично считаю, что это слишком хлопотно. Идите без запятой. Хотя может быть способ получить его в формуле с escape-последовательностью или чем-то еще.
Ницца. Почему я не могу заставить это работать. ggplot молчал, когда я добавил запятую. –
Ах, из-за списка вместо массива символов? Почему это имеет значение? Странный. –
@MikeWise Да, 'list' в plotmath - это то, что позволяет списки, разделенные запятыми. Без этого вы либо получите ошибку, либо не получите запятую. – aosmith