2017-05-23 5 views
0

mir ein „logischen“ Vektor von N Komponenten wie diese:Stellen visuell einen Vektor von Index - R

0 0 0 0 0 1 1 1 1 0 1 0 1 0 ... 

Ich mag ein Vektor/Matrix zeigen, wo die Elemente Farben. Das Element i ist eine Farbe, wenn das Element i meines logischen Wertes eine 0 und sonst eine andere Farbe ist. Es dient zur visuellen Darstellung eines logischen Vektors.

Antwort

0

Nicht ganz sicher, was Ihre erwartete Ausgabe ist, aber vielleicht so etwas wie:

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)) 

zu geben:

enter image description here

Edit: Eine schönere Version:

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") 

enter image description here

1

Sie können Ihren logischen Vektor in einem col= Argument für das Plotten verwenden, und das logische wird in numerisch erzwungen. So könnten Sie tun

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 

usw.

Beachten Sie, dass dies funktionieren wird genau die gleiche Art und Weise mit einem Vektor von 0/1 als mit FALSCH/WAHR.

Wenn Sie sehen möchten, welche Farben, mit denen Zahlen auf Ihrem Rechner entsprechen Besuche

palette() 
# [1] "black" "red"  "green3" "blue" "cyan" "magenta" "yellow" "gray" 

So auf meiner Maschine, eine Farbe mit dem Wert 1 ist schwarz, 2 rot, usw. Schauen Sie sich ?palette um zu sehen, wie man die Standardwerte ändert.