如何引用绘图“数据”的值(重复使用值)?

How to refer to values (re-use values) of `data` of the plot?

我有一个条形图 -

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 条线。如果我通过原始数据帧 df:

定义 data,我就成功了
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])))

但是,如果我t/don不想引用源数据框,而是想使用先前定义的 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

一种方法是直接从 gp 对象中显式获取数据:

gp + geom_path(data=gp$data[c(1,3,2),])