绘制多种颜色的轴标签

时间:2014-04-02 16:40:15

标签: r graphics plot axis-labels

我正在制作类似于使用以下代码生成的图:

var1 <- sort(runif(10, 0, 1), decreasing = TRUE)
var2 <- sort(runif(10, 0, 1))
plot(var1, pch = 20, ylab = c("Var 1", "Var 2"))
points(var2, pch = 20, col = "grey")

有没有一种方法,仅使用R图形包,在Var 1之前放置一个黑色圆圈,在y轴标签中放置一个灰色圆圈Var 2,以避免插入图例?或者,在y轴上使用不同文本颜色(Var 1为黑色,Var 2为灰色)的方法?我尝试使用col.lab = c("black","grey"),但它说Error in plot.window(...) : graphical parameter "col.lab" has the wrong length

非常感谢,

玛西亚

2 个答案:

答案 0 :(得分:1)

我不确定如何将标记添加到标签上,但可以通过以下方式轻松实现颜色标记:

var1 <- sort(runif(10, 0, 1), decreasing = TRUE)
var2 <- sort(runif(10, 0, 1))
plot(var1, pch = 20, ylab = "")
points(var2, pch = 20, col = "grey")
mtext("Var 1", side=2, line=2)
mtext("Var 2", side=2, line=3, col="grey")

enter image description here

答案 1 :(得分:0)

这样的事情对你有用吗?它在左轴上有点忙,但我认为它显示了你所询问的内容。

> var1 <- sort(runif(10, 0, 1), decreasing = TRUE)
> var2 <- sort(runif(10, 0, 1))
> plot(var1, ylim = range(c(var1, var2)), pch = 20, ylab = "", axes = FALSE)
> points(var2, pch = 20, col = "grey")
> labs <- round(sort(c(var1, var2)), 1)
> axis(1)
> axis(2, at = sort(c(var1, var2)), labels = labs)
> sapply(var1, function(x) points(-0.1, x, pch = 20))
> sapply(var2, function(x) points(-0.1, x, pch = 20, col = "grey"))
> box()

enter image description here