LINUX.ORG.RU

Это не «фрейм разбить», это эксклюзив :)

Надо взять R graphics и начать писать свой плот. Процесс написания можно постить сюда :).

вот затравка:

1 plot.newclass <-
2   function(x, y=NULL,
3            main="", sub="",
4            xlim=NULL, ylim=NULL,
5            axes=TRUE, ann=par("ann"),
6            col=par("col"),
7            ...) {
8   xy <- xy.coords(x, y)
9   if (is.null(xlim))
10     xlim <- range(xy$x[is.finite(xy$x)])
11   if (is.null(ylim))
12     ylim <- range(xy$y[is.finite(xy$y)])
13   opar <- par(no.readonly=TRUE)
14   on.exit(par(opar))
15   plot.new()
16   plot.window(xlim, ylim, ...)
17   points(xy$x, xy$y, col=col, ...)
18   if (axes) {
19     axis(1)
20     axis(2)
21     box()
22   }
psv1967 ★★★★★
()

В общем par(mfrow), рисуя, где надо, шкалы и задавая дистанцию par(mar) на каждом графике и задача решена.

ados ★★★★★
() автор топика
Ответ на: комментарий от psv1967

Лови:

time<-seq(7000,3400,-200)
pop<-c(200,400,450,500,300,100,400,700,830,1200,400,350,200,700,370,800,200,100,120)
grp<-c(2,5,8,3,2,2,4,7,9,4,4,2,2,7,5,12,5,4,4)
med<-c(1.2,1.3,1.2,0.9,2.1,1.4,2.9,3.4,2.1,1.1,1.2,1.5,1.2,0.9,0.5,3.3,2.2,1.1,1.2)

par(mar=c(0, 4, 4, 4),mfrow=c(3,1))

plot(time, pop, axes=F, xlab="", ylab="",type="l", main="")
box()
points(time,pop,pch=20)
axis(2)
axis(1,labels=F)
mtext(2,text="Population",line=2)


par(mar=c(0, 4, 0, 4) )
plot(time, med, axes=F, xlab="", ylab="", type="l", main="")
box()
axis(2)
points(time, med,pch=20)
mtext(2,text="Median Group Size",line=2)
axis(1,labels=F)
axis(3,labels=F)

par(mar=c(4, 4, 0, 4) )
plot(time, grp, axes=F, xlab="", ylab="", type="l", main="")
box()
axis(2)
axis(3,labels=F)

points(time, grp,pch=20)
mtext(2,text="Number of Groups",line=2)

axis(1,pretty(range(time),10))
mtext("cal BP",side=1,,line=2)

Пока есть проблемы с делениями ( внутри бокса) и разными высотами графиков.

ados ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.