如何将barplot / plot分配给变量并在稍后阶段调用

时间:2015-12-27 23:08:03

标签: r plot

如何将plot分配给变量并在以后阶段将其打印出来? 使用格子xyplot,您可以轻松完成:

s <- xyplot((1:10)^2~1:10)
s

但不是基础plot

a <- plot((1:10)^2,1:10)

我得到的是函数中的barplot

funbar <- function(x) { barplot(x) }
variab <- funbar(1:10) # this plots the data

所以我希望通过调用variab

在稍后阶段打印

实际上我在函数中有其他图形函数,如下所示:

funbar <- function(x) { barplot(x); points(....); text(....) }

我在这个明显的部分找不到任何信息。 plot=FALSE在这里没有帮助。

编辑:以下是从?barplot

获取的条形图数据
require(grDevices) # for colours
tN <- table(Ni <- stats::rpois(100, lambda = 5))
r <- barplot(tN, col = rainbow(20))

编辑2:回答Josh问题,为什么我想这样做。例如:

layout(matrix(1:2, nrow=2, ncol=1))
tN <- table(Ni <- stats::rpois(100, lambda = 5))
r <- barplot(tN)
tN <- table(Ni <- stats::rpois(100, lambda = 5))
r <- barplot(tN)

1 个答案:

答案 0 :(得分:2)

也许这可以通过xy.coords来解决:

a <- xy.coords((1:10)^2,1:10) #plots nothing

可以稍后绘制:

plot(a)

我通过检查plot.default的代码来实现这个想法。

至于barplot s,也许rect函数会完成类似的事情(因为这似乎是barplot.default正在做的事情的核心)。