Grafiken

Farben

Farben kann man z.B. mit den Attributen col oder bg angeben. Farbbezeichnungen kann man auf diverse Arten angeben, z.B. col="red" oder col=2.

Abb.: Farben 1:8

Für die Zahlen 1 bis 8 erhählt man die obigen Farben. Nach 8 wiederholen sich die Farben.

Farben mit colours() / colors()

Mit colours() bzw. colors() erhält man eine Liste von vordefinierten Farben und ihren Namen. Hier z.B. die ersten zehn:

> colours()[1:10]
[1] "white" "aliceblue" "antiquewhite" "antiquewhite1"
[5] "antiquewhite2" "antiquewhite3" "antiquewhite4" "aquamarine"
[9] "aquamarine1" "aquamarine2"

In dem Vektor sind length(colours()) = 657 Farben - darunter auch grey0-grey100 und gray0-gray100. Die Farben kann man in einer Grafik ausgeben, um zu schauen welche Farben sich hinter den Farbnamen verbergen.

Abb.: Farben von colours(), colors()

Nun kann man sich eine Farbe aussuchen. Hier nehmen wir x = 38 und y = 4 (rot eingekastelt), also hat die ausgesuchte Farbe den Namen: colours()[73*(y-1)+x] = colours()[73*(4-1)+38] = colours()[257] = "green3".

Farben selbstdefinieren

Man kann auch Farben selbstdefinieren, z.B. mit rgb(rot, grün, blau, alphaName, MaxFarbWert). Die Werte für rot, grün, blau und den alpha-Wert (Transparenz) müssen zwischen 0 und MaxFarbWert liegen. Man kann Farben auch mit # und einer Hexadezimalzahl definieren - der alpha-Wert ist optional.

Beispiel: Wir definieren zuerst einen Vektor von Farben f und plotten diesen dann über eine Reihe von schwarzen Punkten.

f<-rgb(200, 100, 250, c(50,100,200,255), c("sdf1","sdf2","sdf3","sdf4"), 255)
plot(1:4, rep(0,4), col="black", pch=16, cex=2, axes=FALSE,xlim=c(0,5))
points(1:4, rep(0,4), col=f, pch=15, cex=7)

Abb.: selbstdefinierte Farben

Wenn man sich f ausgeben lässt, erhält man die Farben in Hexadezimalzahlen. Man kann z.B. die Farbe auch so col="#C864FAFF" angeben.

> f
       sdf1        sdf2        sdf3        sdf4
"#C864FA32" "#C864FA64" "#C864FAC8" "#C864FAFF"

zurück


Legenden

Mit dem Befehl legend() kann man eine Legende in einen Plot einfügen.

Hier ein Beispiel:
x<-rnorm(30)

plot(x, col=ifelse(sign(x)==-1, "red", "blue"))
legend("topleft", c("positiv", "negativ"), text.col=c("red", "blue"), cex=0.7)
legend("left", c("positiv", "negativ"), bg="white", pch=15, col=c("red", "blue"), pt.cex=2)
legend(0, -2.8, c("positiv", "negativ"), col=c("red", "blue"), box.col="darkgreen", xpd=TRUE, lty=c(2,3))
legend(10, 3.2, c("positiv", "negativ"), pch=1, col=c("red", "blue"), horiz=TRUE, xpd=TRUE)
legend("center", c("positiv", "negativ"), pch=1, lwd=1, col=c("red", "blue"))
legend("bottom", c("positiv", "negativ"), lwd=2, col=c("red", "blue"), title="Titel")
legend("topright", c("positiv", "negativ"), fill=c("red", "blue"), density=50, angle=130, inset=0.05)
legend("right", c("positiv", "negativ"), fill=c("red", "blue"), x.intersp=0.2)
legend("bottomright", c("positiv", "negativ"), fill=c("red", "blue"), density=20, y.intersp=0.7)

points(a<-c(5,7,9,23,20.5,20.5,30.5,32,32), b<-c(2,0,-3.3,2.8,0,-1.5,1.7,0,-1.7), cex=3, xpd=TRUE, bg="white", pch=21)
text(a, b, 1:9, font=2, xpd=TRUE)

Abb.: Legenden mit legend()

Erklärungen zu den Attributen des Befehls lengend() anhand der Grafik

1) "topleft"   Position der Legende
  cex   Schriftgröße
  text.col   Schriftfarbe
2) bg   Hintergrundfarbe der Legende
  pch   Symboltyp
  pt.cex   Größe des Symbols
3) x=0, y=-2.8   Position der Legende
  box.col   Farbe der Umrandung
  xpd   Plotting in der gesamten figure region
  lty   Linientyp
4) horiz   horizontale Anordnung
5) lwd   Linienstärke
6) title   Titel der Legende
7) fill   farbige Quadrate
  density   Dichte der Schraffur
  angle   Winkel der Schraffur
8) x.intersp   horizontale Abstände (Symbol-Text,Text-Rand)
9) y.intersp   vertikale Abstände (Text-Text,Text-Rand)

Weitere Attribute kann man in der R Hilfe nachlagen [1]

Positionierung einer Legende

Die Position einer Legende kann man

  • durch Schlüsselwörter angeben, z.B. "top", "right", "left", "center", "bottomleft", usw.
  • durch die Angabe von x- und y-Koordinate (der linken oberen Ecke) angeben.
  • mit Hilfe der Funktion locator() festlegen.
    Mit locator(n=1) wird die Legende dort gezeichnet, wo der Benutzer mit der Maus hinklickt, dabei wird von der Funktion ein Klick erwartet.

    Beispiel:
    plot(x, col=ifelse(sign(x)==-1, "red", "blue"))
    legend(locator(n=1), c("positiv", "negativ"), pch=1, lwd=1, col=c("red", "blue"))

zurück


Symbole

Mit dem Attribut pch kann man das Symbol, das z.B. in den Funktionen plot() oder points()verwendet wird, bestimmen. Die Symbole 0-18 sind mit S kompatibel; 0-25 sind R Symbole; 26-31 werden nicht benutzt; 32-127 sind ASCII Zeichen [2].

Mit dem Vektor der Symbolnummern füllt man eine Matrix und gibt die Symbole dann in einer Grafik aus, um zuschauen welche Symbole sich hinter den Nummern verbergen.

Abb.: Symbole

Nun kann man sich ein Symbol aussuchen. Hier nehmen wir x = 4 und y = 2 (rot eingekastelt), also hat das ausgesuchte Symbol die Nummer pch = 16*(y-1)+x-1 = 16*(2-1)+4-1 = 19.

Zweifarbige Symbole

Die Symbole 21-25 kann man zweifarbig darstellen, in dem man die Hintergrundfarbe mit dem Attribut bg und die Farbe für die Umrandung mit dem Attribut col angibt. Mit lwd kann man die Dicke der Umrandung angeben.

Beispiel:
opar<-par(mar=c(0,0,2,0), oma=c(0,0,0,0))
plot(1:5, rep(1, 5), col="blue", bg="red", pch=21:25, cex=4, lwd=1:5, axes=FALSE, xlim=c(0, 6), ylim=c(0.5, 1.5))
text(1:5, rep(1, 5), labels="21":"25", col="white")
par(opar)

Abb.: Zweifarbige Symbole pch=21:25


zurück


Quellen:
[1] Add Legends to Plots
R: help(legend) bzw. ?legend
[2] Add Points to a Plot
R: help(points) bzw. ?points
[3] Set or Query Graphical Parameters
R: help(par) bzw. ?par
[4] RGB Color Specification
R: help(rgb) bzw. ?rgb

14.10.2009 (R: 2.8.1-2.9.2)