Download - R base graphics
R base graphics
Mark Heckmann University of Bremen, Germany
www.markheckmann.de
Version Januar, 2014
© CC BY-NC 2.0 DE
(base) graphics
Zwei Grafiksysteme
grid graphics
• Älteres System • Sehr schnell • Sehr viele
vereinzelte Funktionen
lattice ggplot2
Arten von base graphics Funktionen
High-Level functions Erstellen komplexer Grafiken, z.B. (hist) Low-Level functions Erstellung von Linien, Punkte, Achsen etc. oftmals on-top auf High-Level Funktion
High-Level Funktionen
High-Level Grafik-Funktionen plot! hist! barplot!
qqnorm! boxplot!
Don‘t get fooled by default looks: Mit R base graphics kann man wunderschöne Grafiken produzieren. Allerdings benötigt dies meist viel Code
Rahlf, T. (2014) Datendesign mit R, S. 222 ff.
!par(mai=c(0.5,1,0.5,0.5),! omi=c(0.5,0.5,0.5,0.5),! family="Lato Light",las=1)!frauen <- read.csv("daten/frauen.txt",header =F,sep=",")!for(i in 1:111) ! colnames(frauen)[i]<-paste("x",i+1949,sep="") !maenner<-read.csv("daten/maenner.txt",header =F,sep=",")!for(i in 1:111) ! colnames(maenner)[i]<-paste("x",i+1949,sep="")!rechts<-frauen$x2010!links<-maenner$x2010!farbe_rechts<-c(! rep(rgb(210,210,210,maxColorValue=255),15),! rep(rgb(144,157,172,maxColorValue=255),50),! rep(rgb(225,152,105,maxColorValue=255),! length(rechts)-65))!farbe_links<-farbe_rechts!barplot(rechts,axes=F,horiz=T,axis.lty=0,! border=NA, col=farbe_rechts,xlim=c(-750,750))!barplot(-links,axes=F,horiz=T,axis.lty=0,border=NA, ! col=farbe_links,xlim=c(-750,750),add=T)!abline(v=0,lwd=28,col=par("bg"))!for (i in seq(10,90,by=10)) text(0,i+i*0.2,i,cex=1.1) ! mtext(abs(seq(-600,600,by=200)),! at=seq(-600,600,by=200), 1,line=-1,cex=0.80)! rect(-1000,15+15*0.2,1000,66+66*0.2,xpd=T, ! col=rgb(210,210,210,90,maxColorValue=255),! border=NA)!mtext("erwerbsfähiges Alter",2,line=1.5,las=3,adj=0.38) !mtext("Männer",3,line=-5,adj=0.25,cex=1.5,col="grey") !mtext("Frauen",3,line=-5,adj=0.75,cex=1.5,col="grey") !mtext("Altersaufb...",3,line=-1.5,adj=0,cex=1.75,! family="Lato Black",outer=T) !mtext("Angaben in...",3,line=-3.25,adj=0,cex=1.25,! font=3,outer=T) !mtext("Quelle: ww...",1,line=0,adj=1.0,cex=0.95,! font=3,outer=T)!
Histogramm mit hist!
x <- rnorm(1000)!hist(x)!
?hist - Argumente von hist!
hist(x, breaks = "Sturges",! !freq = NULL, probability = !freq,! !include.lowest = TRUE, right = TRUE,! !density = NULL, angle = 45, !! !col = NULL, border = NULL!! !main = paste("Histogram of" , xname),!
!xlim = range(breaks), ylim = NULL,! !xlab = xname, ylab,! !axes = TRUE, plot = TRUE, !! !labels = FALSE,!
!nclass = NULL, !! !warn.unused = TRUE, ...)!
Noch mehr Argumente. Mehr dazu später ...
hist(x, breaks=25, col="grey", main="Histogramm", ! xlab="Werte von x", ylab="Häufigkeit",! ylim=c(0, 100), xlim=c(-5, 5),! border="white")!
main!
border!
xlab!
ylab!
xlim!
ylim!
col!
breaks!
Your turn! - Erstelle folgendes Histogramm mit zufälligen Werten mit dem Datensatz
Streudiagramm mit plot!
plot(x=IQbio, y=IQfoster, type="p",! xlab="IQ of twin raised by biological parents",! ylab="IQ of twin raised by foster parents",! main="IQ - Zwilling im Vergleich",! xlim=c(60, 140), ylim=c(60, 140))!
main!
type!
xlab!
ylab!
xlim!
ylim!
Your turn! - Erstelle folgenden Plot mit dem iris Datensatz
Einstellung graphischer Parameter
?par # > 50 Parameter! bg Hintergrundfarbe des Plots cex Größe des Texts im Plot col! Farbe der dargestellten Elemente las Stil der Achsenbeschriftung lwd Breite von gezeichneten Linien pch Art des dargestellte Symbols
Graphical parameters
Über die Funktion par können graphische Parameter festgelegt werden. Dies kann entweder
a) direkt über die Funktion par vor dem Aufruf einer High-Level Funktion, wie z.B plot,
b) oder über das Drei-Punkte-Argument ... innerhalb der Funktion geschehen.
Üblicher ist letzteres, denn dies verändert nur den aktuellen Plot. Erstgenannte verändert alle nachfolgenden Plots.
Die Argumente von par können direkt in die Funktion plot eingegeben werden (Datensatz Burt aus Paket car)
plot(IQbio, IQfoster, col="darkgrey",! las=1, pch=16, cex=3)!
col!las!
cex!
pch!
Farben können u.a. als Zahl zwischen 1 und 8 oder als Text definiert werden
"red", "blue", "green", "grey”
... später mehr !
Farben – Argument col !
Vektorisierte Argumente
plot(IQbio, IQfoster, col=class,! las=1, pch=16, cex=4)!
Your turn! – Verändere den letzten Plot folgendermaßen
Argument pch – point character
Kann ein Vektor mit Zahlen zwischen 1 und 20 sein oder mit einem Zeichen !!
! ! ! ! ! ! !pch="#"!
Weitere vektorisierte Argumente
cnum <- as.numeric(class) # umwandeln!plot(IQbio, IQfoster, col=cnum,! las=1, pch=cnum, cex=cnum)!
Your turn! Erstelle folgenden Plot
Your turn! Erstelle folgenden Plot
par vor plot aufrufen
Anstatt die Argumente für par innerhalb von plot anzugeben können diese auch vor dem Aufruf von plot angegeben werden !par(cex=2)!!plot(IQbio, Iqfoster)!
!Allerdings betrifft die Einstellung danach alle weiteren Plots. Für manche Argumente, wie bg (background), funktioniert es jedoch nur so.!
Deshalb sollte man nach Erstellung der Grafik die Ursprungseinstellung von par wieder herstellen
!par gibt eine Liste mit den
Einstellungen vor der Änderung zurück
op <- par(cex=2)!plot(IQbio, Iqfoster)!par(op)!
Zurücksetzen auf alte Einstellungen (in op
gespeichert)
!a) ! !op <- par(cex=2)!! ! !plot(IQbio, Iqfoster)!! ! !par(op)!!b) ! !plot(IQbio, Iqfoster, cex=2)!!
... - Argumente werden an die Funktion
par weitergeleitet
par Aufrufe im Vergleich
Balkendiagramm mit barplot!
v <- c(1, 3, 2)!barplot(v, names.arg = c("A", "B", "C"))!
names.arg!
Mehrdimensionale Balkendiagramme!
m <- matrix(c(1, 3, 2, ! 2, 2, 4), ncol=3, by=T)!barplot(m, beside=FALSE, names.arg = ! c("Col 1", "Col 2", "Col 3"))!
beside=FALSE! beside=TRUE!
Balkendiagramme nutzen aggregierte Daten (Anzahl pro Kategorie). Die Datenstruktur kann z.B. mit Hilfe von table erzeugt werden attach(mtcars)!cats <- c("3 Gänge", "4 Gänge", "5 Gänge”)!
tbl <- table(gear)!barplot(tbl, names=cats)!!tbl! 3 4 5 !15 12 5 !
prop <- prop.table(tbl, 2)!barplot(prop, names=cats)!!prop! 3 4 5!0 0.80 0.17 0.80!1 0.20 0.83 0.20!!
tbl <- table(vs, gear)!barplot(tbl, names=cats)!!tbl! 3 4 5!0 12 2 4!1 3 10 1!
Your turn! - Erstelle einen Barplot der anzeigt, wieviel Prozent der Personen pro Jahrgang abschalten (d.ngo Datensatz aus dem ryouready Paket)
Plot – Eine generische Funktion
Bisher haben wir ein Streudiagramm mit plot erzeugt. Es existiert jedoch nicht nur eine, sondern sehr viele Funktionen mit dem Namen plot. Welche plot Funktion gemeint ist hängt davon ab, was für ein Objekt (Dataframes, Faktoren, Regressionen) geplottet werden soll. library(car)!attach(Burt)!
plot(IQbio, IQfoster) # numerisch!
Streudiagramm
plot(Burt) # dataframe!
Paarweise Streudiagramme
plot(class, IQbio) # factor, num.!
Boxplot
plot(class) # factor!
Balkendiagramm
m <- lm(IQbio ~ IQfoster)!plot(m) # linear model!
Regression
Plot – Eine generische Funktion
Wenn man die Hilfe zu plot aufruft steht hier Generic function for plotting of R objects. Wenn ein Streudiagramm erstellt werden soll, erkennt R, dass x und y numerisch sind und nutzt deshalb die Funktion plot.default. Hier stehen in der Hilfe deutlich mehr Argumente als in plot. !Zum plotten einer Regression nutzt R die Funktion plot.lm. Als Nutzer merkt man dies nicht, wenn man einfach plot eingibt. Wenn man jedoch die Argumente für plot sucht, muss man bei der jeweiligen plot-Funktion nachschauen.!
Legenden
Legenden können über die Funktion legend hinzugefügt werden
Es können vier Typen von Legende erzeugt werden: • Boxen • Linien • Symbole • Linien + Symbole !
legend(x=1, y=10, ! legend=c("Eins","Zwei", ! "Drei","Vier"), ! fill=1:4, ! title="Boxen")!
title!
fill!
legend!
ncol=2!border=“red"!
density=20, horiz=TRUE!
border!density!
legend(x=1, y=10, ! legend=c("Eins","Zwei", ! "Drei","Vier"), ! lwd=1, ! title=“Linien")!lwd:line
width!
lwd=4!seg.len=5!
seg.len!
lty=1:4!
lty: line type!
legend(1, 10, !! ! c("Eins", "Zwei", !
"Drei", "Vier"), ! pch=1:4, col=1:4,! text.col=1:4,! title="Symbole")!
text.col!
pch!
pt.cex=c(.5, 1, 1.5, 2) pt.lwd=c(1,3,6,9)!
pt.cex, pt.lwd!
pch=1:4!lwd=4!merge=TRUE!
legend(1, 10, ! LETTERS[1:3], ! fill=1:4, ! title.col="blue",! title="Boxen", ! bg="gray90", ! box.col="red", ! box.lwd=3,! y.intersp=2)!
title.col!
box.lwd!box.col!
y.intersep!
cex=2!
bg!
Argumente • x!• Y !• xjust !• yjust!
1!
0!
yjust!
1!0!xjust!
Positionieren der Legende
Über Schlüsselwörter positionieren
Legenden Argumente in Grafik Funktionen
m <- matrix(1:4, 2)!barplot(m, col = 2:3,! legend.text = c("A","B")) !
Einige Grafikfunktionen, z.B. barplot, besitzen Argumente um Legenden automatisch zu generieren
Unschöne Platzierung!
barplot(m, col = 2:3,! legend.text = c("A", "B"), ! args.legend = ! list(x="topleft”,bty="n"))!
In dieser Variante wird die Legende ebenfalls durch die Funktion legend erzeugt. Die Funktion wird nur hinter den Kulissen durch barplot automatisch aufgerufen. Um die Legende anzupassen, können weitere Argumente an legend über das Argument args.legend als Liste übergeben werden.
Platzierung oben links!
Kein Rahmen um Legende!
Füge zum vorherigen Plot eine Legende hinzu
Plot in Datei speichern
Grafik als Datei speichern
R kann unterschiedliche Output Formate erzeugen. Hierzu stehen u.a. folgende Funktionen zur Verfügung
## Bitmap Format!jpeg() ! ! ! ! !# öffnet jpeg device!bmp() ! ! ! ! !# öffnet bmp device!png() ! ! ! ! !# öffnet png device!!## Vektorformat!pdf() ! ! ! ! !# pdf device öffnen!cairo_pdf !# Alternative zu pdf()!!
Grafikdatei erstellen
Vorgehen für alle Dateitypen:
1. Grafik Device (Datei) öffnen 2. Grafikcode (eine / mehrere Zeilen) ausführen 3. Device (Datei) schließen pdf("mein_plot.pdf“) !# pdf device öffnen!!plot(1:10) ! ! # Grafikbefehl(e)!
dev.off()! ! ! ! ! !# device schließen!!!
pdf("mein_plot.pdf", width=5, height=3)! par(bg="grey95") ! plot(1:10, col="blue", pch=16, ! !!! ! !main="Plot in PDF")!
dev.off()
●●
●●
●●
●●
●●
2 4 6 8 10
24
68
Plot in PDF
Index
1:10
Breite in Inch Höhe in Inch
Bitmap-Formate
Bei Bitmap-Formaten wird die Größe (width, height) des Plots in Punkten (Pixel) angegeben. Die Vorein-stellung sind 480 Pixel.
Weiterhin gibt es ein Argument res, das die Auflösung (Feinheit des Plots), d.h. die Anzahl an Pixeln pro Inch (ppi, default sind 72), angibt.
png("plot.png", width=480, height=480, res=72)! !par(bg="grey95") ! !plot(1:10)!dev.off()!
Bitmap Formate und Auflösung
Die Standardeinstellung für z.B. png ist 72 Pixel pro Inch (ppi). Dies ist für Web-Grafiken der Standard. Diese Qualität ist jedoch zu gering für Publikationen. Ziel: 300ppi.
72ppi 300ppi
Die Auflösung kann mit dem Argument res verändert werden. Setzen wir diese zunächst auf 2 * 72ppi = 144 ppi
Folge: Der Plot ist immer noch 480 Pixel breit. Bei doppelter Auflösung bedeutet dies effektiv jedoch nur noch die halbe Breite
Um das gleiche Ergebnis wie zuvor nur mit doppelter Auflösung zu erhalten, muss die Größe des Plots (Anzahl der Pixel) ebenfalls um den Faktor 2 vergrößert werden.
png("72ppi.png", ! width = 480, height = 480, res = 72)! plot(1:10)!dev.off()!
png("144ppi.png", ! width = 480*2, height = 480*2, res = 72*2)! plot(1:10)!dev.off()!
Jetzt: Doppelte Auflösung und doppelte Größe
Vorher: Einfache Auflösung und einfache Größe
Typische Fehler
Achtung: Manchmal vergisst man offene devices wieder zu schließen dev.list() ! ! !# welche devices sind !! ! ! ! ! ! !# noch offen?!
!graphics.off()! !# alle devices schließen!! !
Erstelle folgende png-Grafik mit einer Auflösung von 300 ppi
Plot Layout
Verschiedene Plot Bereiche
Siehe auch: Clarkson, 2010, http://www.stat.tamu.edu/~jkim/Rfigurelayout.pdf
Verschiedene Plot Bereiche
plot-Bereich: eigentlicher Inhalt des Plots (Punkte, Linien, Histogramm etc.) figure-Bereich: Achsen und zugehörige Labels. Breite wird als Vielfaches einer Zeilenhöhe im Uhrzeigersinn angegeben (unten, links, oben, rechts). Voreinstellung:
! ! !mar=c(5.1, 4.1, 4.1, 2.1)! device-Bereich: Umgrenzt einen oder mehrere figure Bereiche. Wird meist als zusätzlicher Rahmen genutzt. Voreinstellung:
oma=c(5.1, 4.1, 4.1, 2.1)! Siehe auch: Clarkson, 2010, http://www.stat.tamu.edu/~jkim/Rfigurelayout.pdf
Verschiedene Plot Bereiche
Siehe auch: Clarkson, 2010, chr
mar[1] = 5!
oma[1] = 3!
Funktionen zu den Bereichen
box(which="plot") !# Rahmen um Plot Bereich!box(which="figure") # ... um Figure Bereich!box(which="outer") # ... um Device Bereich !! !Text im Figure oder Device Bereich !mtext("figure links", side=1, !! ! line= 2, adj=0)!
mtext("device rechts", side=1, ! line= 2, adj=1, outer=TRUE)!
Siehe auch: Clarkson, 2010, http://www.stat.tamu.edu/~jkim/Rfigurelayout.pdf
adj=1!adj=0!
adj=1!
Your turn! – Verändere den iris-Daten Plot folgendermaßen
Anordnen von Plots mit mfrow!par kennt das Argument mfrow. Dies gibt die horizontale und vertikal Anzahl an gleich großen figure Bereichen an !par(mfrow=c(1,2), oma=c(1,1,1,1))!plot(rnorm(10), rnorm(10))!hist(rnorm(100))!
Layout mit 1 Zeile und 2 Spalten!
mfrow=c(1,2)
Your turn! – Erweitere den iris-Daten Plot folgendermaßen
Anordnen von Plots mit layout!layout erlaubt komplexe Anordnungen. Figure Bereiche können sich über mehrere Zeilen oder Spalten erstrecken. Auch kann die Breite und Höhe jeweils einzeln bestimmt werden. !
5 separat bedruckbare
Figure Bereiche!
Figure Bereich 1 über 3 Spalten!
Figure Bereich 5 über 2 Zeilen!
Definition des Layouts Die Definition des Layouts geschieht mit Hilfe einer Matrix Das Erstellen und Aktivieren eines Layouts erfolgt über die Funktion layout!
m <- matrix(1:4), ncol=2, by=T)!m! [,1] [,2]![1,] 1 2![2,] 3 4!
layout(m)!
Das Layout ist nach dem Erzeugen bereits aktiv. Es wird in der Reihenfolge der Zahlen in der Matrix gefüllt
plot(1:10)!hist(rnorm(100))!plot(1:10, col=2)!plot(1:10, col=4)!
Beim Aufruf einer High-Level Funktion wird jeweils ein neuer Plot-Bereich gefüllt
Visualisierung des Layouts
Zur leichteren Erstellung kann eine Layout gespeichert und mittels layout.show visualisiert werden
m <- matrix(1:4), ncol=2, by=T)!l <- layout(m)!!layout.show(l)!
Um einen Figure Bereich über mehrere Zeilen oder Spalten zu erstrecken, bekommen Felder in der Layout-Matrix dieselbe Zahl zugeteilt. Felder mit der Zahl 0 bleiben leer und erhalten keinen Figure Bereich.
m <- matrix(c(1,1,1,! 2,2,0,! 2,2,3), ! ncol=3, ! byrow=T)!m! [,1] [,2] [,3]![1,] 1 1 1![2,] 2 2 0![3,] 2 2 3!
Über die layout Argumente widths und heights kann das Höhen-Verhältnis der Zeilen und Breiten-Verhältnis der Spalten zueinander bestimmt werden.
m <- matrix(1:4, ! ncol=2, ! by=T)!l <- layout(m, ! widths=c(1,2), ! heights=c(1,3))!!layout.show(l)!
1
3
1 3
:
:
x <- rnorm(1000)!y <- rnorm(1000)!!# Layout!par(oma=c(0,0,1,3))!m <- matrix(c(1,2), ncol=1)!layout(m, height=c(1,5))!!# Histogramm!par(mar=c(0,4,0,0))!hist(x, xaxt="n", ! yaxt="n", main="",! ylab="", xlab="")!!# Streudiagramm!par(mar=c(4,4,0,0))!plot(x, y, ! xlab="", ylab="", ! las=1, pch=16)!!
Your turn! – Erzeuge folgenden Plot mit dem iris-Datensatz
Low-Level Funktionen
Low-Level Funktionen
Eine High-Level Funktion wie plot greift auf viele Low-Level Funktionen zurück und baut aus diesen die Grafik zusammen. Dabei geschieht u.a. Folgendes: • Ein Plot-Bereich mit den Einstellungen für die
Ränder (mar, oma) wird angelegt • Die Inhalte (z.B. Punkte werden gedruckt) • Die Achsen und die Labels werden hinzugefügt
Nutzung von Low-Level Funktionen
Low-Level Funktionen werden auf zwei Weisen verwendet: 1. Nachdem eine High-Level Funktion genutzt
wurde. Z.B. um noch weitere Punkte oder Linien zum Plot hinzuzufügen
2. Erstellung einer Grafik von Grund auf (engl. from sratch)
Einige Low-Level Grafik-Funktionen points! Punkte erzeugen
lines! Linien erzeugen
rect! Rechtecke erzeugen
polygon! Polygon erzeugen
abline! Einfache vert. und horiz. Linien
arrows! Pfeil erzeugen
text! Text erzeugen
mtext! Text in den Rändern erzeugen
title! Überschrift erzeugen
axis! Achsen erstellen
grid! Raster hinzufügen
# Plot aufsetzen!library(car)!attach(Burt)!plot(IQbio, IQfoster)!
# Raster hinzufügen!grid(lty="solid")!!!# Horiz. und vert. Linien !abline(h=100, col="red")!abline(v=100, col="red")!!
# Punkte oben rechts in!# rot neu plotten!i <- IQbio > 100 & ! IQfoster > 100!points(IQbio[i], IQfoster[i], ! col = "red", pch = 16)!
# Halb-transparentes !# Rechteck hinzufügen rect(100, 100, 140, 140,! col = "#FF000020", ! border = NA)!
# Regressionsgrade!m <- lm(IQfoster ~ IQbio, ! data = Burt)!abline(m, col = "grey")!!
# Text hinzufügen!text(120, 120, "OR")!
Your turn! – Erzeuge folgenden Plot
Leere Plots erzeugen
# Leerer plot mit passenden!# Limits!plot(IQbio, IQfoster, ! type = "n")!!
„n“ unterdrückt die Punkte
# Leerer plot mit Limits !# von Hand!plot(NULL, ! xlim = c(70, 130), ! ylim = c(70, 130) )!
Keine Daten
Text
# Leerer plot mit korrekten!# Limits!plot(IQbio, IQfoster, ! type = "n")!!
# Punkte hinzufügen!points(IQbio, IQfoster, ! col="grey", pch=16)!
„n“ unterdrückt die Punkte
# Leerer plot mit korrekten!# Limits!i <- which(IQbio > 130)!x <- IQbio[i]!y <- IQfoster[i]!points(x, y, col = "red", ! pch = 16)!
# Pfeil und Text!arrows(x, y - 10, ! x, y, ! length=0.2, ! lwd = 2, col = "red")!text(x, y-12, ! "Sehr schlau", ! adj = 1, col = "red")!
Farben in R Inspired by http://research.stowers-institute.org/efg/Report/UsingColorInR.pdf
In R können verschiedene Elemente des Plots Farben annehmen
• Punkte • Linien • Achsen • Legenden • Text • Hintergrund • etc.
Punkte
Tick-Label
Legende
Überschrift
Achsen Label
Achse
Tick
Hintergrund
Farben in R
Farben können in R auf unterschiedliche Art spezifiziert werden Als Name: "red", "blue”!!Als Zahl: !Als Hexadezimal-Code: “#12FE99"!!
Als Zahl
Wenn man eine Zahl eingibt wird die Standardpalette genutzt !palette()![1] "black" "red" "green3" ![4] "blue" "cyan" "magenta"![7] "yellow" "gray" !
Die Zahl 0 heißt keine Farbe, d.h. weiß, wenn der Hintergrund der Grafik weiß ist.
Als Zahl
Größere Zahlen führen zu recycleten Farben
plot(1:50, pch=16, col=1:50)!Z.B.
plot(1:8, pch=16,! cex=4, col=1:8)!
plot(1:24, pch=16,! cex=4, col=1:24)!
Farben als Namen colors()! [1] "white" "aliceblue" "antiquewhite" ! [4] "antiquewhite1" "antiquewhite2" "antiquewhite3" ! [7] "antiquewhite4" "aquamarine" "aquamarine1" ![10] "aquamarine2" "aquamarine3" "aquamarine4" !
Erstelle folgenden Plot
Grautöne
grey(0)![1] "#000000"!!grey(.5)![1] "#808080"!!grey(1)![1] "#FFFFFF"!!
"grey0"!!!"grey50"!!!"grey100"!
RGB Modell C
C: B
y Sh
ark
D o
n h
ttp
://e
n.w
ikip
ed
ia.o
rg/w
iki/
File
:Ad
diti
veC
olo
r.svg
Funktion rgb setzt Farben aus Rot-Grün-Blau Anteilen zusammen Anteil kann jeweils von 0 bis 1 reichen Die Funktion gibt einen String zurück rgb(.4, .2, .8)! [1] "#6633CC"!
rgb(1,1,1)!
rgb(0,1,0)! rgb(0,1,1)!
RGB Modell C
C: B
y Sh
ark
D o
n h
ttp
://e
n.w
ikip
ed
ia.o
rg/w
iki/
File
:Ad
diti
veC
olo
r.svg
Häufig werden die Anteile auch mit Werten zwischen 0 und 255 genutzt. rgb(102, 51, 204, max=255)! [1] "#6633CC"! !
rgb(255,255,255, max=255)!
rgb(0,255,0,max=255)!
Alpha Parameter
Alpha meint den Grad an Transparenz einer Farbe. Von 0=undurchlässig, 1=völlig durchlässig.
rgb(1,0,0)!
rgb(1,0,0,.5)!
rgb(1,0,0,.9)!
Transparenz führt, dass man overplotting sinnvoll wird
Erstelle folgenden Plot mit 10000 zufälligen Werten ~N(0,1)
RGB Modell in Hexadezimal-Notation Hex Dezimal
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
A 10
B 11
C 12
D 13
E 14
F 15
rgb(0,255,0, max=255)![1] "#00FF00"!
255=15 ⋅161 +15 ⋅160
255= 2 ⋅101 + 5 ⋅101 + 5 ⋅100Dezimalsystem mit Basis 10
Hexa-Dezimalsystem mit Basis 16
Merksatz: 0=00 und 255=FF, alles andere liegt dazwischen
F F
RGB Modell in Hexadezimal-Notation Hex Dezimal
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
A 10
B 11
C 12
D 13
E 14
F 15
Hex-Werte beginnen mit einer Raute: "#00FF00"! An der viertel Position kann auch hier Alpha angegeben werden "#00FF0010"! Alpha