我有一个像这样的数据框
library(ggplot2)
library(ggrepel)
ggplot(data = df, aes(PDATETIME,DELTA ))+
ggtitle("Outlier Analysis") +
theme(axis.text.x = element_text(angle=90, vjust=1),plot.title = element_text(size = rel(1))) +
geom_point(colour="black") +
geom_vline(aes(xintercept=df$PDATETIME[which(df$Type %in% "Outlier")],linetype=4, colour="black")) +
geom_text_repel(aes(PDATETIME, DELTA,
label = Type),
size =4,
fontface = 'bold',
color = 'red',
box.padding = 0.5,
point.padding = 0.5,
segment.color = 'darkblue',
segment.size = 0.5,
arrow = arrow(length = unit(0.01, 'npc'))) +
xlab("PDATETIME")+
ylab("DELTA")
我正在尝试使用ggplot2在离群点绘制垂直线
Error: A continuous variable can not be mapped to linetype
它引发错误“ @echo off
:main
if exist MyCommand.flag goto :eof
start test2.bat
:wait
timeout 1 >nul
tasklist /fi "Windowtitle eq MyCommand"|find "cmd.exe" >nul || @goto :main
goto :wait
”
离群点位于2017-02-25 15:31:50,2017-03-16 23:48:14
我在这里想念什么?有人可以指出我正确的方向吗?
答案 0 :(得分:2)
我们在 geom_vline 中不需要 aes ,请尝试:
geom_vline(xintercept = df$PDATETIME[ which(df$Type %in% "Outlier") ], linetype = 4, colour = "black")
答案 1 :(得分:2)
linetype
和color
没有变化,因此您可以将其移到aes
之外。另外,我建议您将代码修改为:
geom_vline(data = df[which(df$Type %in% "Outlier"),],
aes(xintercept = PDATETIME),
linetype = 4, colour = "black")
答案 2 :(得分:1)
您需要将linetype
和colour
从aes
中移出:
geom_vline(aes(xintercept=df$PDATETIME[which(df$Type %in% "Outlier")]),linetype=4, colour="black")
如果您希望linetype
和/或colour
在aes()
内,则希望它们根据某个变量(例如df$type
)而变化。