如何引用绘图“数据”的值(重复使用值)?
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),])
我有一个条形图 -
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),])