Я хотел бы сделать участок с 4 осей в R так, что он похож на этот сюжет:Как сделать следующий график, используя R?
Я смотрел на Quick-R website за совет и измененный один из их примеров (так называемого A Silly Axis Example
):
# specify the data
x <- c(1:5); y <- x/2;
w <- c(2:4)
z <- c(1:5)
# create extra margin room on the right for an axis
par(mar=c(5, 4, 4, 8) + 0.1)
# plot x vs. y
plot(x, y,type="b", pch=21, col="red",
yaxt="n", lty=3, xlab="", ylab="")
# add x vs. 1/x
lines(x, z, type="b", pch=22, col="blue", lty=2)
# draw an axis on the left
axis(2, at=x,labels=x, col.axis="red", las=2)
# draw an axis on the right, with smaller text and ticks
axis(4, at=w,labels=round(w,digits=2),
col.axis="blue", las=2, cex.axis=0.7, tck=-.01)
# draw an axis on the top
axis(3, at=z,labels=round(z,digits=2),
col.axis="blue", las=2, cex.axis=0.7, tck=-.01)
# add a title for the right axis
mtext("L", side=3, line=3, cex.lab=1,las=2, col="blue")
# add a title for the right axis
mtext("OSR", side=4, line=3, cex.lab=1,las=2, col="red")
# add a main title and bottom and left axis labels
title("", xlab="GSI", ylab="FSI")
Этот код производит следующий сюжет:
У меня DIF Трудно понять, как разные оси могут иметь разные масштабы. Например, мне нужна верхняя ось L
, чтобы перейти от 5 до 13, но если я установил z <-c(5:13)
, она не будет устанавливать ось в эти значения. Тем не менее, я могу переписать то, что метки:
axis(3, at=z,labels=round(c(9:13),digits=2), col.axis="blue",
las=2, cex.axis=0.7, tck=-.01)
но если я хочу, чтобы построить точку с этими четырьмя параметрами, точка не будет отображаться в правильном месте. Как мне это сделать?
Спасибо за ответ Joran; Это работает хорошо. Только одно уточнение, могу ли я построить точку с использованием второстепенных осей, и будет ли она считать, что расстояние между метками этих осей? – djq