R:向布局

时间:2016-05-27 19:58:31

标签: r plot

我正在使用布局绘制多个内容,我想在其中一些图中添加箭头。我尝试了grid.curve和grid.lines()但到目前为止没有运气。 以下是我想做的一个例子:

mat <- cbind(matrix(c(1:3,0,4:5,0,6,7),3,3,byrow=T), 8:10)
m<-layout(mat)
layout.show(m)
cars <- c(1, 3, 6, 4, 9)
trucks <- c(2, 5, 4, 5, 12)
plot(cars, type="o", col="blue")
plot(trucks, type="o", pch=22, lty=2, col="red")
plot(cars, type="o", col="blue", ylim=c(0,12))
lines(trucks, type="o", pch=22, lty=2, col="red")
barplot(cars)
barplot(trucks)
hist(cars)
pie(cars)
library(gplots)
textplot(mat)

我想从绘图中添加一个箭头(layout.pos.col = 2,layout.pos.row = 1)到plot(layout.pos.col = 2,layout.pos.row = 2)和一个从(layout.pos.col = 2,layout.pos.row = 2)到(layout.pos.col = 3,layout.pos.row = 3)。有没有简单的方法来添加这些?

提前致谢!

2 个答案:

答案 0 :(得分:3)

如果你不需要任何超凡的东西,你可以给arrows一个去。 两个简单的黑色直箭:

x <- -2
y <- -0.1
arrows(x0=x, y0=y, x1=x, y1=y-0.2, xpd=NA, length=0.05)

x <- -1.55
y <- -1.3
arrows(x0=x, y0=y, x1=x+0.5, y1=y-0.6, xpd=NA, length=0.05)

我完全通过反复试验找出了坐标,可能有更聪明的方法。 xpd=NA对绘制绘图区域之间的绘图非常重要。

enter image description here

答案 1 :(得分:0)

我试图以元素的方式解决它。

:
textplot(mat)

par.old <- par(no.readonly=T)            # preserve old par
par(new=T, mfrow=c(1,1), mar=c(0,0,0,0))
plot(0,0, type="n", axes=F, ann=F)       # make empty plot

a <- locator(4)                          # locator() returns xy coordinates at a click point
# click on the plot four times (first arrow's start point, end point, second arrow's …)

arrows(a$x[1], a$y[1], a$x[1], a$y[2], length=0.1)  # use same x ( a$x[2] is unnecessary ).
arrows(a$x[3], a$y[3], a$x[4], a$y[4], length=0.1)

par(par.old)