2015-11-05 43 views
1

我一直在试图标签添加到我的散点图的点,但我不断收到一个问题的时候:错误解析(文= 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

不要使用美元符号的符号'aes'内。您可以在'ggplot'中定义图表中使用的数据集,因此可以(也应该!)直接引用每个变量。 – aosmith

回答

0

删除了data$Y等(根据AOSMITH的建议),和定义meanYggplot调用之前。

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) 

此息率与没有错误或警告: enter image description here

+0

问题是美学映射中的美元符号表示法 - 该绘图与'geom_vline'中的mean(data $ y)'一起工作,因为它将x截距设置为一个值,而不是映射到美学。 – aosmith