我有一个股票价格的图表,以反映不同日期的时间。目前,使用geom_text我能够标记Y值偏离0的显着正值的兴趣点。但是,我还希望标记Y显着小于0的点。目前,对于geom_Text,我有:
geom_text_repel(aes(label=ifelse(percent_change_price_SPY>0.35,as.character(DATE),'')))
我尝试在if语句中添加另一个条件,
geom_text_repel(aes(label=ifelse((percent_change_price_SPY>0.35)|(percent_change_price_SPY<-.35),as.character(DATE),'')))
但它返回了错误:
could not find function "|<-"
我也试过把它分成两个geom_text调用
geom_text_repel(aes(label=ifelse(percent_change_price_SPY>0.35,as.character(DATE),''))) + geom_text_repel(aes(label=ifelse(percent_change_price_SPY<-0.35,as.character(DATE),'')))
答案 0 :(得分:2)
带有两个ifelse语句的单个嵌套geom_text应该可以解决问题,例如:在这个玩具数据集中,
library(data.table)
library(ggplot2)
library(ggrepel)
dat <- data.table(col1=c(rep("A",50), rep("B",50)), col2=rep(1:50,2), col3=runif(100, min=-1, max=1))
ggplot(data=dat, mapping=aes(x=col2, y=col3, color=col1)) +
geom_line() +
geom_text_repel(aes(label=ifelse((col3 > 0.9), col2, ifelse(col3 < -0.9, col2, ""))))
在你的情况下,这将是:
geom_text_repel(aes(label=ifelse((percent_change_price_SPY > 0.35), DATE, ifelse(percent_change_price_SPY < -0.35, DATE, ""))))
请注意,示例代码中的以下条件不会按预期工作:
value<-0.35
因为你需要在不等号和负号之间留一个空格