我有一个条形图 -
df <- data.frame(xpos=c(200, 300, 400, 600),
ypos=c( 1, 3, 2, 1))
gp <- ggplot(df, aes(x=xpos, y=ypos)) +
geom_bar(stat="identity")
并且想要连接一条线,比如第1,3和2条。如果我通过原始数据框data
定义df
,我就会成功执行此操作:
gp +
geom_path(data=data.frame(xpos=c(df$xpos[1], df$xpos[3], df$xpos[2]),
ypos=c(df$ypos[1], df$ypos[3], df$ypos[2])))
但是,如果我不能/不想引用源数据帧而是想要使用先前定义的data
的值,该怎么办?我尝试了以下方法:
gp +
geom_path(data=data.frame(xpos=c(xpos[1], xpos[3], xpos[2]),
ypos=c(ypos[1], ypos[3], ypos[2])))
# object 'xpos' not found
gp +
geom_path(data=aes(xpos=c(xpos[1], xpos[3], xpos[2]),
ypos=c(ypos[1], ypos[3], ypos[2]))
)
# ggplot2 doesn't know how to deal with data of class uneval
答案 0 :(得分:3)
一种方法是明确地从gp对象中获取数据:
gp + geom_path(data=gp$data[c(1,3,2),])