如何完成以下R图?

时间:2012-05-15 02:14:45

标签: r plot

我使用以下R plot命令创建绘图 - 我在Google中进行了大量查看后设法找到了“正确”命令 - 但它仍然不完美:

x = c(0.1,0.2,0.3,0.4);

y = c(100,200,300,400);

z = c(81,82,83,87);

w = 150;

v = 85.5;

plot(x,y, type="l", lwd=4, xlab="threshold", ylab="seconds");

points(x, y, col="red", cex=2, pch=19);

abline(h=w, col="red", lwd=4);

par("usr");

par(usr = c(par("usr")[1:2], 80,90));

axis(4, lwd=4);

points(x, z, col="blue", cex=2, pch=19);

points(x, z, type="l", lwd=4);

abline(h=v, col="blue", lwd=4);

我正在寻找的是一些事情:

  1. 在右侧y轴旁边添加文字。我看到有人建议使用mtext,但它对我不起作用。是不是有办法用轴命令将标签贴在右y轴上?添加ylab或实验室没有帮助。

  2. 我希望y轴旁边的文字颜色为蓝色和红色(因此它很清晰,根据图中的点,哪条曲线与哪条轴一致)。是否可以将 y轴的标签着色? (首先,我必须为正确的y轴获得一个标签!)

  3. 我想让左侧y轴(和刻度线)的线条与右侧y轴一样粗。 x轴相同。这可能吗?

1 个答案:

答案 0 :(得分:2)

尝试这样的事情:

par("mar")
par(mar = c(par("mar")[1:3], 5.1))

plot(x,y, type="n", lwd=4, ylab="", xlab="threshold", xaxt="n",yaxt="n")

axis(1,lwd=4)
axis(2,lwd=4)

points(x, y, col="red", cex=2, pch=19)
abline(h=w, col="red", lwd=4)

par("usr")
par(usr = c(par("usr")[1:2], 80,90))

axis(4, lwd=4)
points(x, z, col="blue", cex=2, pch=19)
points(x, z, type="l", lwd=4)
abline(h=v, col="blue", lwd=4)

mtext("Your text", side = 4, col = "blue",line=3)
mtext("seconds", side = 2, col = "red",line=3)

enter image description here