如何使用lines()绘制线条而不事先调用R中的plot()

时间:2015-02-06 22:35:40

标签: r plot

鉴于这些数据:

> x <- c(1, 2)
> y1 <- c(4, 3)
> y2 <- c(3, 6)

我想在同一个绘图框架上以不同的颜色绘制(x,y1)和(x,y2)的线条。这具有预期的效果:

> plot (x, y1, type='l', col='red')
> lines (x, y2, col='green')

有两种方法可以使用lines吗?这只会创建一个空图:

> plot.new ()
> lines (x, y1, col='red')
> lines (x, y2, col='green')

我猜plot正在调用一些函数来绘制第一行之前的绘图;它似乎不是plot.new。那是什么功能?我可以在致电lines之前自己打电话吗?

编辑:我在Ubuntu 14.04上使用R 3.0.2。

3 个答案:

答案 0 :(得分:5)

 x <- c(1, 2)
 y1 <- c(4, 3)
 y2 <- c(3, 6)
 plot.new(); plot.window(xlim=c(1,2),ylim=c(1,6) )
 lines (x, y1, col='red')
 lines (x, y2, col='green')

enter image description here

我收到了关于解释我的代码的唠叨信息,但我确实认为罗伯特很聪明,可以解决这个问题。通过?plot.window页面上的链接,您可以查看其他低级功能,例如?xy.coords。您可以通过在控制台提示符下键入其名称来查看plot.default的代码。在该代码中,您会看到定义了一个新函数,但它实际上只是在调用plot.window之前收集了一些参数:

localWindow <- function(..., col, bg, pch, cex, lty, lwd) plot.window(...)
# which gets called later in the code.

答案 1 :(得分:1)

对于plot解决方案,您需要使用plot选项创建包含一些数据的n掩码这些数据(我也使用了ann=F掩盖xy标签):

plot(x, y1, type='n', ann=F, xlim=c(1,2),ylim=c(1,6))
lines (x, y2, col='green')
lines (x, y1, col='red')

enter image description here

答案 2 :(得分:1)

plot()命令中,使用type="n"无形地设置图表。然后使用后续lines()添加您的线段。