Ошибка разбора (text = x) при включении неперекрывающихся меток в ggplot2
Я пытался добавить метки к точкам в моем графике рассеяния, но у меня продолжает появляться проблема:
Error in parse(text = x) : <text>:1:1: unexpected '$'
1: $
^
Я просмотрел большинство постов, связанных с пакетом direct.label, но не могу понять, что я делаю неправильно.
Вот воспроизведение проблемы:
library(ggplot2)
library(directlabels)
data <- data.frame(X= c("A","B","C","D","X","Y","S","P","L","W"), Y=rnorm(10), Z=rnorm(10))
data$X <- as.character(data$X)
graph <- ggplot(data, aes(data$Y,data$Z))
t2<-theme(
axis.title.x = element_text(face="bold", color="black", size=15),
axis.title.y = element_text(face="bold", color="black", size=15),
plot.title = element_text(face="bold", color = "black", size=12),
axis.text.x = element_text(size=15),
axis.text.y = element_text(size=15)
)
graph <- graph + geom_point(aes(colour=data$X), size=3) + geom_smooth(method="lm", se=F, size=0.5) +
xlab("Y") + ylab("Z") +
geom_vline(xintercept=mean(data$Y), color="red", size=1, linetype=2) + theme_bw() + t2 +
geom_text(x=740,y=105, label="Avg", size=4.5); graph
direct.label.ggplot(graph)
1 ответ
Удалил data$Y
и т. д. (согласно предложению Аосмита) и определены meanY
перед ggplot
звонки.
library(ggplot2)
library(directlabels)
data <- data.frame(X= c("A","B","C","D","X","Y","S","P","L","W"),
Y=rnorm(10), Z=rnorm(10))
data$X <- as.character(data$X)
meanY <- mean(data$Y)
graph <- ggplot(data, aes(Y,Z))
t2<-theme(
axis.title.x = element_text(face="bold", color="black", size=15),
axis.title.y = element_text(face="bold", color="black", size=15),
plot.title = element_text(face="bold", color = "black", size=12),
axis.text.x = element_text(size=15),
axis.text.y = element_text(size=15)
)
graph <- graph + geom_point(aes(colour=X), size=3) +
geom_smooth(method="lm", se=F, size=0.5) +
xlab("Y") + ylab("Z") +
geom_vline(xintercept=meanY, color="red", size=1, linetype=2) +
theme_bw() + t2 +
geom_text(x=740,y=105, label="Avg", size=4.5);
print(graph)
direct.label.ggplot(graph)