我有一个"逻辑" N
组件的向量,如下所示:
0 0 0 0 0 1 1 1 1 0 1 0 1 0 ...
我想显示一个矢量/矩阵,其中元素是颜色。如果我的逻辑值的元素i
是0,则元素i
是一种颜色,否则是另一种颜色。它以视觉方式表示逻辑向量。
答案 0 :(得分:1)
您可以在col=
参数中使用逻辑向量进行绘图,逻辑将被强制转换为数字。所以你可以做到
logi_vec <- sample(c(T,F), 20, replace=T)
# [1] TRUE FALSE TRUE FALSE FALSE FALSE TRUE TRUE FALSE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE FALSE TRUE FALSE
x <- rnorm(20)
# simple plotting, the pch=16 produces a solid dot
plot(x, col=logi_vec+1, pch=16) # black vs. red
plot(x, col=logi_vec+2, pch=16) # red vs. green
plot(x, col=2*(logi_vec+1), pch=16) # red vs. blue
等
请注意,对于0/1的向量和FALSE / TRUE,这将使用完全相同的方式。
如果您想查看哪种颜色与您机器上的数字相对应,请查看
palette()
# [1] "black" "red" "green3" "blue" "cyan" "magenta" "yellow" "gray"
因此,在我的机器上,值为1的颜色为黑色,2为红色等。请查看?palette
以查看如何更改默认值。
答案 1 :(得分:0)
不完全确定您的预期输出是什么,但可能类似于:
x <- structure(c(0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0), .Dim = c(14L,
1L))
image(x, col = grey.colors(start = 1, end = 0, n = 2))
给予:
编辑:更好的版本:
z <- structure(c(0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0), .Dim = c(14L,
1L))
x <- 1:nrow(z)
y <- 1:ncol(z)
image(x, y, z, col = grey.colors(start = 1, end = 0, n = 2), yaxt = "n", xaxs = "r")