Linientypen, Symbole und Farben in R-Plots

R bietet verschiedene Möglichkeiten, seine Datenreihen in Plots unterscheidbar zu machen. Dazu gibt man in den Plot-Befehlen den zu ändernden Parameter, sowie einen Zahlenwert an. Ich vergesse allerdings immer, welche Zahl zu welcher Farbe oder zu welchem Linientyp gehört. Daher liste ich in diesem Artikel Zahlenwerte für folgende Parameter auf:

  1. Typen von Linien (lty).
    Beispiel: plot(c(1:10), type="o", lty=3).
  2. Farben (col).
    Beispiel: plot(c(1:10), type="o", col=4).
  3. Typen von Punkten / Sybole (pch; point character).
    Beispiel: plot(c(1:10), type="o", pch=5).

Linientypen

In R gibt es sechs verschiedene Typen von Linien. Die Zahlen für die Linientypen werden mit einer Periode von sechs „recycled“. Dadurch entspricht der Typ sieben (7) wieder dem Typen eins (1), eine Linie vom Typ acht (8) sieht aus wie eine Linie vom Typen zwei (2) und so weiter. Für jeden der Linien-Typen gibt es auch einen Namen (siehe auch Beschreibung des Parameters lty in der R-Hilfe zu par(): ?par):

  • 0: „blank“; unsichtbare Linie (=> wird nicht gezeichnet)
  • 1: „solid“
  • 2: „dashed“
  • 3: „dotted“
  • 4: „dotdash“
  • 5: „longdash“
  • 6: „twodash“
In R gibt es sechs verschiedene Typen von Linien, hier abwechselnd in rot und grün dargestellt. Jeder der Linientypen ist in 3 verschiedenen Größen (lwd=1-3) dargestellt. Die Werte für die Linientypen wiederholen sich in einer Periode von sechs. Daher entspricht die Angabe lty=7 der Angabe lty=1, die Angabe lty=8 entspricht der Angabe lty=2, und so weiter.
In R gibt es sechs verschiedene Typen von Linien, hier abwechselnd in rot und grün dargestellt. Jeder der Linientypen ist in 3 verschiedenen Größen (lwd=1-3) dargestellt. Die Werte für die Linientypen wiederholen sich in einer Periode von sechs. Daher entspricht die Angabe lty=7 der Angabe lty=1, die Angabe lty=8 entspricht der Angabe lty=2, und so weiter.

Das oben stehende Bild habe ich mit folgendem Code erzeugt:

1
2
3
4
5
6
7
8
# 6 Linientypen
png("linientypen.png")
par(mar=c(0,4,0,0)+.1, cex=1.5)
plot(1,1, type="n", ylim=c(0, 7), xaxt="n", xlab="", ylab="Linentyp (lty)", las=1)
abline(h=c(0:7),     lty=c(0:7), lwd=3, col=c(2,3))
abline(h=c(0:7)-0.2, lty=c(0:7), lwd=2, col=c(2,3))
abline(h=c(0:7)-0.4, lty=c(0:7), lwd=1, col=c(2,3))
dev.off()

Farben

In der Standard-Palette von R befinden sich acht verschiedene Farben. Dazu kommt noch der Wert 0, bei dem die Hintergrundfarbe als Farbe verwendet wird. Die Farben werden mit einer Periode von acht „recycled“. Durch diese fortlaufende Wiederholung, entspricht die Farbe neun (9) der Farbe eins (1), die Farbe zehn (10) wieder der Farbe zwei (2) und so weiter. Anstatt einer Zahl kann man auch direkt den RGB-Farbwert angeben (z.B. plot(1, 1, col="#000000") anstatt plot(1, 1, col=1) ). Weitere Details gibt es im Bereich „Color Specification“ in der R-Hilfe zu den Grafik-Parametern (?par).

In R gibt es acht verschiedene Farben. Hinzu kommt der Wert 0, bei dem die Hintergrundfarbe als Farbe verwendet wird (siehe diagonale Linie). Mit einer Periodenlänge von 8, werden die Farben wiederholt (wiederholte Farben sind mit einer dünnen Linie dargestellt).
In R gibt es acht verschiedene Farben. Hinzu kommt der Wert 0, bei dem die Hintergrundfarbe (hier: #eeeeee) als Farbe verwendet wird (siehe diagonale Linie). Mit einer Periodenlänge von 8, werden die Farben wiederholt (wiederholte Farben sind mit einer dünnen Linie dargestellt).

Für das vorangegangene Bild habe ich folgenden Code verwendet:

1
2
3
4
5
6
7
# 8 LinienFarben
png("linienfarben.png")
par(mar=c(0,4,0,0)+.1, cex=1.5, bg="#eeeeee")
plot(1,1, type="n", ylim=c(0, 11), xlim=c(0, 11), xaxt="n", xlab="", ylab="Linenfarbe (col)", las=1, lab=c(1,11,0))
abline(h=c(0:11), lty=1, lwd=c(rep(10,9), rep(1,9)), col=c(0:11))
abline(a=0, b=1, lwd=10, col=0)
dev.off()

Punkttypen / Symbole

Um den Punkttyp zu definieren, kann entweder ein einzelnes Zeichen oder eine Zahl angeben werden. In der Hilfe zum Befehl par() (?par oder ?graphics::par) steht dazu:

Note that only integers and single-character strings can be set as a graphics parameter (and not NA nor NULL)

Eine detaillierte Liste gibt es in der R-Hilfe zur Funktion points() (?points; Bereich „‚pch‘ values“). Hier eine kurze Zusammenfassung:

  • Zeichen 018: S-kompatible Vektor Symbole
  • Zeichen 1925: Weitere R Vektor Symbole. Die Zeichen 2125 können mit Hilfe von bg innerhalb des plot-Befehls (hier: points()) eingefärbt werden. Achtung: Die Angabe von bg innerhalb von points() hat hier eine andere Auswirkung als die Angabe von bg innerhalb von par() (z.B. par(bg="#ff00ff")). Durch letzteres setzt man die Hintergrundfarbe der gesamten Plot-Fläche.
  • Zeichen 2631: Werden ignoriert
  • Zeichen 32127: ASCII Zeichen

In der folgenden Grafik werden die die ersten 26 Zeichen dargestellt (+ zwei negative Werte).

Punkt-Typen für "pch"-Werte von -2 bis +25. Der Innernraum der Zeichen 21 bis 25 wurde durch die Angabe " bg='red' " innerhalb des Befehls "points()" rot eingefärbt.
Punkt-Typen für „pch“-Werte von -2 bis +25. Der Innernraum der Zeichen 21 bis 25 wurde durch die Angabe “ bg=’red‘ “ innerhalb des Befehls „points()“ rot eingefärbt.

Das oben stehende Bild wurde mit folgenden Befehlen erzeugt:

1
2
3
4
5
6
7
8
9
# 25 Punkt-Typen
png("punkttypen.png")
par(mar=c(0,4,0,0)+.25, cex=1.5)
plot(1, 1, type="n", ylim=c(-2, 25), xlim=c(0, 10), xaxt="n", xlab="", ylab="Punkttyp (pch)", las=1, lab=c(2,15,0))
abline(h=c(-2:25), lty=3, lwd=1, col="#cccccc")
for (typ in -2:25) {
  points(x=c(0:10), y=c(rep(typ,11)), pch=typ, bg="red")
}
dev.off()

Befehle die ich häufig in der LaTeX-Präambel verwende

Seit ich mit LaTeX begonnen habe, habe ich viele Pakete kennengelernt und eigene Befehle entwickelt. Alle haben irgendwo einen Platz in der Präambel gefunden. Problematisch wird es, wenn ich mit alten LaTex-Dokumenten arbeite, in denen ich bestimmte Befehle noch nicht verwendet habe. Oder wenn ich die Präambel eines Dokumentes kopiere, in dem unnötige Pakete eingebunden werden. Oftmals vergesse ich auch altenative Parameter, die man für ein Paket verwenden kann.

Da das alles sehr lästig ist, beginne ich jetzt diese Liste mit Befehlen aus meinen Präambeln. Dabei stelle ich kurz vor, warum ich ein Paket verwende und welche Prameter man verwenden kann.

Als allgemeine Einleitung zu LaTeX eigenet sich auf jedenfall „The not so Short Introduction to LaTeX„, die es in einer Kurzfassung auch auf deutsch gibt.

Dokumententyp

  1. 1
    
    \documentclass[a4paper,twoside,12pt]{scrartcl}

    Mit dieser Zeile wird der Dokumententyp scrartcl verwendet. Häufig verwendete Dokumententypen sind:

    • article – Kurze Artikel
    • report – Lange Berichte
    • book – Bücher
    • scrartcl – Kurze Artikel (KOMA Script)
    • scrreprt – Lange Berichte (KOMA Script)
    • scrbook – Bücher (KOMA Script)

    KOMA-Script erlaubt eine bessere Anpassung z.B. an DIN-Formate.
    Wichtige Optionen sind der Dokumententypen sind:

    • a4paper – DIN-A4 als Seitengröße verwenden (Andere: letterpaper)
    • twoside – Doppelseitigen Satz verwenden (Standard: oneside)
    • 12pt – Angabe der Schriftgröße in Punkten (Standard: 10pt)
    • titlepage – Nach dem Dokumententitel eine neue Seite beginnen (Standard bei book und report; bei article ist der Standard notitlepage)
    • twocolumn – Teile die Seiten in zwei Spalten auf (Standard: onecolumn)
    • openright, openany – Sollen Kapitel immer auf der rechten Seite begonnen werden?
  2. 1
    
    \pagestyle{headings}

    In LaTeX gibt es drei verschiedene Seitenlayouts:

    • plain – Setze die Seitenzahl zentriert unten auf die Seite.
    • headings – Zeige Seitenzahl und Kapitelnamen in der Kopfzeile jeder Seite an.
    • empty – Zeige weder Seitenzahlen, noch Kapitelnamen an.

Sprache und Zeichensatz

  1. 1
    
    \usepackage[english]{babel}

    Verschiedene Sprachen haben auch verschiedene Trennungsregeln. Unter anderem werden diese in Paket babel definiert.

    • english – englische Trennungsregeln verwenden
    • ngerman – deutsche Trennungsregeln verwenden (neue Rechtschreibung)
    • german – deutsche Trennungsregeln verwenden (alte Rechtschreibung)
    • ngerman,english – deutsche und englische Trennungsregeln laden (z.B. bei mehrsprachigen Dokumenten). Im Dokument die aktiven Trennungsregeln umschalten mit:
      \selectlanguage{ngerman}
  2. 1
    2
    3
    
    \usepackage{ucs}              % Unicode (u.A. UTF-8) hinzuladen!
    \usepackage[utf8x]{inputenc}  % Verwende UTF-8 als Zeichensatz.
    \usepackage[T1]{fontenc}      % Trennung von Umlauten ermöglichen(?)

    Sofern man Sonderzeichen aus mehreren Sprachen in einem Dokument verwendet (z.B. Sonderzeichen in den Autorennamen der Literaturliste), sollte man den Unicode-Zeichensatz UTF-8 als Zeichensatz seines Dokumentes verwenden. Das Dokument selbst sollte dann auch in diesem Zeichensatz gespeichert werden. Man sollte auch beachten, dass zusätzliche Dokumente wie .bib-Dateien auch im UTF-8 Zeichensatz gespeichert werden müssen. Im Referenzmanager JabRef kann man unter file / database properties / encoding UTF-8 einstellen!

Beispiel

Ein Dokument mit den oben beschriebenen Werten für die Präambel könnte folgendermaßen aussehen:

1
2
3
4
5
6
7
8
9
10
11
12
% Dokumententyp
\documentclass[a4paper,twoside,12pt]{scrartcl}
\pagestyle{headings}
% Sprache und Zeichensatz
\usepackage[english]{babel}
\usepackage{ucs}              % Unicode (u.A. UTF-8) hinzuladen!
\usepackage[utf8x]{inputenc}  % Verwende UTF-8 als Zeichensatz.
\usepackage[T1]{fontenc}      % Trennung von Umlauten ermöglichen(?)
 
\begin{document}
Text
\end{document}

Passwörter im Mozilla Firefox werden nicht gespeichert?

Viele Seiten im Internet erfordern eine Anmeldung mit einem Nutzernamen und einem Passwort. Im Optimalfall hat man für jede Seite ein eigenes (und sicheres) Passwort. Dadurch sammeln sich über die Zeit viele Passwörter an, die man nicht jedes mal neu eingeben möchte (oder kann, weil man sie vergessen hat).

Mozilla Firefox bietet daher die Möglichkit Passwörter zu speichern. Wie auf der deutschsprachigen Hilfeseite von Firefox beschrieben, macht Firefox dies bereits standardmäßg. Man sollte allerdings zusätzlich ein Master-Passwort vergeben, um unberechtigten Personen den Zugriff auf die Passwörter zu erschweren.

Unter Umständen kann es passieren, dass man nicht gefragt wird, ob man ein neues Passwort speichern möchte. Zudem kann man in den Sicherheitseinstellungen das Feld „Passwörter speichern“ nicht aktivieren.

Screen shot 2013-08-21 at 12.23.14_cut
Wenn man in den Datenschutzeinstellungen „immer den privaten Modus verwenden“ aktiviert hat, kann man in den Sicherheitseinstellungen das Feld „Passwörter speichern“ nicht aktivieren.

Die Ursache hierfür kann sein, dass man in den Datenschutz-Einstellungen „immer den privaten Modus verwenden“ aktiviert hat. In dem Falle ist es nicht möglich, das Feld „Passwörter speichern“ zu aktivieren. Dieser und andere Gründe für nicht gespeicherte Passwörter, werden auf der englischsprachigen Mozilla Hilfeseite diskutiert.

Um dennoch ein Passwort zu speichern, kann man den privaten Modus in den Datenschutzeinstellungen kurzzeitig deaktivieren (das erfordert einen Neustart des Browsers) und nach der erfolgreichen Speicherung des neuen Passwortes den Modus wieder aktivieren.

 

 

Die Änderung der Sprache klappt nicht bei Ubuntu?

Bei Ubuntu kann man mehrere Sprachen installieren. Dadurch werden sowohl das System, als auch viele Software-Tools in der gewünschten Sprache dargestellt. Diese Änderungen kannst du in den Systemeinstellungen im Bereich „Persönlich“ / „Sprachen“ vornehmen:

Bildschirmfoto vom 2013-08-16 09:50:16
Unter Ubuntu kannst Du mehrere Sprachpakete installieren.

Um die Sprache zu ändern, musst Du nur die gewünschte Sprache an die erste Stelle in der Sprach-Auflistung ziehen. Weitere Informationn dazu findest Du im UbuntuUsers Wiki.

Sollte beim nächsten Login immer noch die vorherige Sprache verwendet werden, ist es möglich, dass deine .profile-Datei die Änderung der Sprache verhindert. Das scheint besonders dann der Fall zu sein, wenn man mal die Ubuntu-Version 12.04 installiert hatte. Um das Problem zu beheben öffne deine .profile-Datei

gedit ~/.profile

und entferne/kommentiere diejenigen Befehle, welche die Konstanten für die Definition der Sprache setzten (bei mir war das System auf english eingestellt):

export LANGUAGE="en"
export LC_MESSAGES="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
export LC_COLLATE="en_US.UTF-8"

ändern zu:

#export LANGUAGE="en"
#export LC_MESSAGES="en_US.UTF-8"
#export LC_CTYPE="en_US.UTF-8"
#export LC_COLLATE="en_US.UTF-8"

Weitere Informationen gibt es im Blog von Christian Habermueller.