60
1/60 Enführung Preprocessing Grundlagen Gestaltung Sonstiges Plotten mit GGPlot2 Referentin: Anne Kunstmann Betreuer: Jakob Lüttgau Proseminar Programmieren in R Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg 25. Mai 2016 Anne Kunstmann Plotten mit GGPlot2

Plotten mit GGPlot2 - wr.informatik.uni-hamburg.de · R vs GGPlot2 Geschichtlicher Hintergrund Einführung Geschichtlicher Hintergrund Paket zur Datenvisualisierung in R Entwickler

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

1/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Plotten mit GGPlot2

Referentin: Anne Kunstmann

Betreuer: Jakob LüttgauProseminar Programmieren in R

Fachbereich InformatikFakultät für Mathematik, Informatik und Naturwissenschaften

Universität Hamburg

25. Mai 2016

Anne Kunstmann Plotten mit GGPlot2

2/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Agenda

1 Einführung

2 Preprocessing

3 Grundlagen

4 Gestaltung

5 Sonstiges

Anne Kunstmann Plotten mit GGPlot2

3/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

R vs GGPlot2Geschichtlicher Hintergrund

Gegenüberstellung: R vs GGPlot2

R native Plotsgrundlegende Plot-Funktionenwortreich für komplexe Plotskeine automatische Legendenerstellungkomplexe Codeänderungen nötigverbesserungswürdige Visualisierung

Anne Kunstmann Plotten mit GGPlot2

4/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

R vs GGPlot2Geschichtlicher Hintergrund

GGPlot2grundlegende und fortgeschrittene Plot-Funktionenautomatische Legendenerstellungrobust bei Codeänderungfeste Schemata bei Plot-Erstellungerwartungsgemäße Visualisierung

Anne Kunstmann Plotten mit GGPlot2

5/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

R vs GGPlot2Geschichtlicher Hintergrund

Plot mit Rhttp://varianceexplained.org/r/why-I-

useggplot2/

Plot mit GGPlot2http://varianceexplained.org/r/why-I-

useggplot2/

Anne Kunstmann Plotten mit GGPlot2

6/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

R vs GGPlot2Geschichtlicher Hintergrund

Code in Rhttp://varianceexplained.org/r/why-I-

useggplot2/

Code mit GGPlot2http://varianceexplained.org/r/why-I-

useggplot2/

Anne Kunstmann Plotten mit GGPlot2

7/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

R vs GGPlot2Geschichtlicher Hintergrund

Einführung

Geschichtlicher HintergrundPaket zur Datenvisualisierung in REntwickler Hadley WickhamVeröffentlichung im Jahr 2005Grundlage „The Grammar of Graphics“

Buch von Leland WilkinsonJahr 1999/2005Thema statistische DatenvisualisierungFokus auf Ästhetik und Geometrie

Anne Kunstmann Plotten mit GGPlot2

8/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

R vs GGPlot2Geschichtlicher Hintergrund

Vorteilegroße Bandbreite an Funktionenhohe Abstraktionerweiterbar durch Pakete (Lattice,...)

Nachteilekeine 3D-Grafikenkeine Graphentheorie (Multigraphen, Kantenzüge,...)keine interaktiven Grafiken

Anne Kunstmann Plotten mit GGPlot2

9/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

DatenimportDatenartenDatentransformation

Datenimport

read-FunktionAufruf des Dateiformats durch „ .“-OperatorNamenszuweisung des importierten Dataframes

Parametertitle Name der zu importierenden Dateiheader = T/F Übernahme der Spaltentitel

Codebeispiel 1: Datenimport einer csv-Datei

1 a i r q u a l i t y <− read . csv ( " a i r q u a l i t y . csv " , header = T)

Anne Kunstmann Plotten mit GGPlot2

10/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

DatenimportDatenartenDatentransformation

Datenarten

Unterscheidung stetiger und diskreter Funktionen

stetigüberabzählbar unendliche viele MerkmaleGröße von Personen, Temperatur in Grad Celsius,...z.B. geom_point(), geom_curve(),...

diskretabzählbar unendlich viele MerkmaleGeschlecht, Religion, Kundenzufriedenheit, ...z.B. geom_bar(), geom_hist(),...

Anne Kunstmann Plotten mit GGPlot2

11/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

DatenimportDatenartenDatentransformation

Datentransformation

Auslegung auf „long format “- DatensätzePakete plyr und reshape2Schichten, Gruppieren, Zusammenfassen von DatenTransformation von „wide format “zu „long format “Erhöhen der Repräsentativität

Anne Kunstmann Plotten mit GGPlot2

12/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

DatenimportDatenartenDatentransformation

Codebeispiel 2 : Ermitteln der Durchschnittstemperatur pro Monat

1 a i r q u a l i t y _means <− ddply ( a i r q u a l i t y , . ( Month ) , summarise ,meanTemp = mean(Temp) )

# Vereinfachen des Dataframes auf Monat und m i t t l e r e Temperatur

Anne Kunstmann Plotten mit GGPlot2

13/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

GrundfunktionenResgressionLabels

Grundfunktionen

qplot - Funktion„quick plot“Einstiegsfunktionkein typisches GGPlot2-Prinzipgleiche grafische Darstellung wie GGPlot2-Funktion

Codebeispiel 3: Die allgemeine qplot-Funktion

l i b r a r y ( ggp lo t2 )2 qp lo t ( x , y , data = , co l o r = , shape = , f i l l = , s i ze = , alpha = ,

geom= , method= , formula = , face ts = , x l im = , y l im = , x lab = ,4 y lab = , main= , sub=)

Anne Kunstmann Plotten mit GGPlot2

14/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

GrundfunktionenResgressionLabels

ggplot - Funktion„Grammar of Graphics “Daten ausschließlich als Dataframesgeom_...()- Funktion

„geometric objetcs “Implementation außerhalb ggplot()-Funktionallgemeine Darstellung der Datengeom_point(), geom_boxplot(), geom_bar(),...

Anne Kunstmann Plotten mit GGPlot2

15/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

GrundfunktionenResgressionLabels

aes()- Funktion„aesthetics “meist Implementation innerhalb ggplot()-Funktionauch Implementation innerhalb geom_...-FunktionenUnterteilung und Unterscheidung der DatenParameter abhängig von geom_...()-Funktionx, y, colour, fill, shape, size, ...

„+ “-Operator verbindet beide Funktionskomponenten

Anne Kunstmann Plotten mit GGPlot2

16/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

GrundfunktionenResgressionLabels

Codebeispiel 4 : Minimale ggplot-Funktion

i n s t a l l . packages ( " ggp lo t2 " ) #Paket i n s t a l l i e r e n2 l i b r a r y ( ggp lo t2 ) # B i b l i o t h e k einbinden

head ( a i r q u a l i t y ) # E i n b l i c k i n Dataframe4

#Frage : E x i s t i e r t i rgende ine Ar t von Re la t ion zwischen derTemperatur und der Windstä rke?

6

ggp lo t ( a i r q u a l i t y , aes ( x = Temp, y = Wind ) + geom_ po in t ( )8 # a i r q u a l i t y a l s Dataframe , Temp und Wind a ls Vektoren aus

a i r q u a l i t y , geom_smooth ( ) f ü r Streudiagramm

Anne Kunstmann Plotten mit GGPlot2

17/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

GrundfunktionenResgressionLabels

●●

● ●

●●

● ●

●●●

●●●

●●

●●

●●

5

10

15

20

60 70 80 90Temp

Win

d

zu Codebeispiel 4: einfaches StreudiagrammAnne Kunstmann Plotten mit GGPlot2

18/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

GrundfunktionenResgressionLabels

Regression

Verdeutlichen von Abhängigkeiten und TrendsImplementation durch geom_smooth()Regressionslinie mitsamt KonfidenzintervallErweiterung durch viele Pakete möglich

mgcv, splines, MASS,...

Anne Kunstmann Plotten mit GGPlot2

19/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

GrundfunktionenResgressionLabels

Codebeispiel 5: default-Regressionskurve

ggp lo t ( a i r q u a l i t y , aes ( x = Temp, y = Wind ) ) + geom_ po in t ( ) +geom_smooth ( )

●●

● ●

●●

● ●

●●●

●●●

●●

●●

●●

5

10

15

20

60 70 80 90Temp

Wind

Anne Kunstmann Plotten mit GGPlot2

20/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

GrundfunktionenResgressionLabels

Parametermethod Regressionsarten

lineare Regression „lm“lokale Regression „loess“

se Konfidenzintervallmit Konfidenzintervall TRUEohne Konfidenzintervall FALSE

span Empfindlichkeit der RegressionWerte 0...1

Anne Kunstmann Plotten mit GGPlot2

21/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

GrundfunktionenResgressionLabels

Codebeispiel 6: lokale empfindliche Regressionskurve ohne Konfidenzintervall

1 ggp lo t ( a i r q u a l i t y , aes ( x = Temp, y = Wind ) ) + geom_ po in t ( ) +geom_smooth ( span = 0.2 , se = F , method = " loess " )

●●

● ●

●●

● ●

●●●

●●●

●●

●●

●●

5

10

15

20

60 70 80 90Temp

Wind

Anne Kunstmann Plotten mit GGPlot2

22/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

GrundfunktionenResgressionLabels

Labels

Hinzufügen von punktegebundenen LabelsImplementation durch geom_text()

Textlabels überschreiben PunkteNachteil: gegenseitiges Überschreiben der Labels

Implementation durch geom_text_repel()Textlabels neben PunkteLabels ziehen Verbindungslinien zu PunktenNachteil: Einbinden des Pakets ggrepel nötig

Anne Kunstmann Plotten mit GGPlot2

23/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

GrundfunktionenResgressionLabels

Codebeispiel 7: geom_text()-Funktion

1 ggp lo t ( a i r q u a l i t y , aes ( x = Temp, y = Wind ) ) + geom_ po in t ( ) +geom_smooth ( ) + geom_ text ( aes ( l a b e l = Day ) )

#Nummerierung anhand der Messungstage auf den Punkten

Anne Kunstmann Plotten mit GGPlot2

24/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

GrundfunktionenResgressionLabels

Codebeispiel 8: geom_text_repel()

ggp lo t ( a i r q u a l i t y , aes ( x = Temp, y = Wind ) ) + geom_ po in t ( ) +geom_smooth ( ) + geom_ text _ repe l ( aes ( l a b e l = Day ) )

2 #Nummerierung anhand der Messungstage neben den Punkten

Anne Kunstmann Plotten mit GGPlot2

25/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

Mapping vs Setting

möglich in ggplot()- und geom()-Funktionen„Setten“ Konstanten als Werte„Mappen“ Variablen als Werte

gegenseitiges Erweiterngegenseitiges Überschreibengegenseitiges Löschen

Einsparen von CodeVerdeutlichen der Grafikstrukturautomatische Legendenerstellung

Anne Kunstmann Plotten mit GGPlot2

26/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

Codebeispiel 9: Mapping und Setting

ggp lo t ( a i r q u a l i t y , aes ( x = Temp, y = Wind , co lour = Ozone ) ) +geom_ po in t ( s i ze = 4) + geom_smooth ( f i l l = " ye l low " , co lour= " red " ) #Mapping : Ozone , Se t t i ng : yel low , red , 4

●●

●●

●●

● ●

●●

● ●

●●●

●●

●●●

●●

●●

●●

5

10

15

20

60 70 80 90Temp

Wind

40

80

120

160Ozone

Anne Kunstmann Plotten mit GGPlot2

27/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

Codebeispiel 10: Mapping innerhalb ggplot

1 ggp lo t ( diamonds , aes ( x = carat , y = pr ice , co lour = cut ) ) + geom_ po in t ( ) + geom_smooth ( se=F) #Regression f ü r Gruppen vonPunkten mi t gleichem S c h l i f f

Anne Kunstmann Plotten mit GGPlot2

28/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

Codebeispiel 11: Mapping innerhalb ggplot und geom

1 ggp lo t ( diamonds , aes ( x = carat , y = p r i ce ) ) + geom_ po in t ( aes (co lour = cut ) ) + geom_smooth ( se=F) #Regression f ü rGesamtheit der Punkte

Anne Kunstmann Plotten mit GGPlot2

29/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

Scaling

Erstellen einer benutzerdefinierten Legende

Stetige PlotsLegendenposition theme(legend.position = ... )

„top “, „bottom“, „left “, „right “Achsenlabels

x-Achse scale_x_continuous = *y-Achse scale_y_continuous = *

* Einfügen eines Strings- Einfügen eines Zahlenwertes

Anne Kunstmann Plotten mit GGPlot2

30/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

Gestaltung der Legende scale_colour_continuous()Name der Legende name = *Abschnitte der Legende breaks = c(-,-,-)Abschnittsbezeichnungen labels = c(*,*,*)Farbverlauf low = *, high = *

Erweiterung scale_colour_gradient2()dreifarbige Erweiterung low, mid, high

Anne Kunstmann Plotten mit GGPlot2

31/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

Diskrete Plotsscale_colour_discrete()scale_x_discrete, scale_y_discreteidentische Funktionen

Codebeispiel 12: benutzerdefinierte Legende

1 g1 + theme ( legend . p o s i t i o n = " top " )+ scale_ co lour _cont inuous (name = " Ozonschicht " , breaks =

3 c (40 , 160) , labels = c ( " ger ing " , " hoch " ) , low = " green ", high = " blue " )

+ scale_x_cont inuous ( " Temperatur i n F" )5 + scale_y_cont inuous ( " Wind i n km/ h " )

Anne Kunstmann Plotten mit GGPlot2

32/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

●●

●●

●●

● ●

●●

● ●

●●●

●●

●●●

●●

●●

●●

5

10

15

20

60 70 80 90Temperatur in F

Wind

in km

/h

gering hochOzonschicht

zu Codebeispiel 12: Legendenerstellung

Anne Kunstmann Plotten mit GGPlot2

33/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

Achsenverhältnisse

Stetige und diskrete Plotsggtitle(*) Titel des Koordinatensystemsxlab(*), ylab(*) Achsenbeschriftungxlim =(-,-), ylim =(-,-) Achsenbegrenzungcoord_cartesian() Zoom eines Achsenabschnitts

xlim = c(-,-), ylim=c(-,-), expand = T/F

Zusammenfassung labs( list( title = *, x = *, y = *))Zusammenfassung lims(x = c(-,-), y = x(-,-))

Anne Kunstmann Plotten mit GGPlot2

34/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

coord_flip() Vertauschen der Achsencoord_fixed(ratio = -) Achsenlänge im Verhältnis y

x

coord_trans(*) Achsentransformationlog2, sqrt, ...

Umkehren der x-Achsenrichtung scale_x_reverse()Umkehren der y-Achsenrichtung scale_y_reverse()keine Achsenabschnittslabels

theme(axis.ticks = element_blank(), axis.ticks.y =element_blank()

Anne Kunstmann Plotten mit GGPlot2

35/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

Codebeispiel 13: benutzerdefiniertes Koordinatensystem

1 g1 + labs ( t i t l e = "Abhä n g i g k e i t der Windstä rke " , x =" Temperatur i n F" , y = " Windstä rke i n km/ h " )

3 + l ims ( x = c (NA, 80) , y = c (5 ,20) )+ coord_ f l i p ( )

● ●

●●

● ●

55

60

65

70

75

80

5 10 15 20Windstärke in km/h

Temp

eratur

in F

40

80

120

160Ozone

Abhängigkeit der Windstärke

Anne Kunstmann Plotten mit GGPlot2

36/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

Facets

Splitten der Visualisierung in VariablenImplementation durch facet_grid()

Unterscheidung in horizontale oder vertikale RichtungAbhängigkeit von maximal zwei weiteren VariablenNotation horizontaler Aufbau . ~ dataNotation vertikaler Aufbau data ~.

Implementation durch facet_wrap()Eingabe der Plot-Anzahl in einer Zeile/SpalteAbhängigkeit von einer VariableNotation ~data, ncol= -/nrow= -

Anne Kunstmann Plotten mit GGPlot2

37/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

Codebeispiel 14: horizontale Anordnung

ggp lo t ( a i r q u a l i t y , aes ( x = Temp, y = Wind ) ) + geom_ po in t ( ) +geom_smooth ( ) + face t _grid ( . ~ Month )

5 6 7 8 9

●●

● ●

●●

● ●

●●●

●●●

●●

●●

●●

0

5

10

15

20

25

60 70 80 90 60 70 80 90 60 70 80 90 60 70 80 90 60 70 80 90Temp

Wind

Anne Kunstmann Plotten mit GGPlot2

38/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

Codebeispiel 15: vertikale Anordnung

1 ggp lo t ( a i r q u a l i t y , aes ( x = Temp , y = Wind ) ) + geom_ po in t ( ) +geom_smooth ( ) + face t _grid ( Month ~ . )

●●

●●

●●

●●

● ●

●●

●●

●●

●●

●●

●●

● ●

●●

●●

●●●

●●

●● ●

●●

●●

●●●

● ●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

0

5

10

15

20

25

0

5

10

15

20

25

0

5

10

15

20

25

0

5

10

15

20

25

0

5

10

15

20

25

56

78

9

60 70 80 90Temp

Wind

Anne Kunstmann Plotten mit GGPlot2

39/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

Diamanten unterteilt in Preis, Carat, Schliff und Farbe

Anne Kunstmann Plotten mit GGPlot2

40/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

Codebeispiel 16: 3 Plots pro Zeile

1 ggp lo t ( a i r q u a l i t y , aes ( x = Temp , y = Wind ) ) + geom_ po in t ( ) +geom_smooth ( ) + face t _wrap ( ~Month , ncol = 3)

Anne Kunstmann Plotten mit GGPlot2

41/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

Codebeispiel 17: 3 Plots pro Spalte

1 ggp lo t ( a i r q u a l i t y , aes ( x = Temp , y = Wind ) ) + geom_ po in t ( ) +geom_smooth ( ) + face t _wrap ( ~Month , nrow = 3)

Anne Kunstmann Plotten mit GGPlot2

42/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

Statistische Transformation

Überschreiben des Defaults der geom-FunktionenUmgestalten der Daten

stat_smooth(), stat_bin(),...Integrieren eigener Funktionen

stat_summary(), stat_function(),...

Anne Kunstmann Plotten mit GGPlot2

43/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

Codebeispiel 18: default-Balkendiagramm

1 ggp lo t ( a i r q u a l i t y , aes ( x = Month ) ) + geom_bar ( )#Balkendiagramm f o r d e r t nur Parameter f ü r x−Achse

0

10

20

30

5 6 7 8 9Month

coun

t

Anne Kunstmann Plotten mit GGPlot2

44/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

Codebeispiel 19: Error-Funktion

ggp lo t ( a i r q u a l i t y _means , aes ( x = Month , y = meanTemp) )2 + geom_bar ( )

#Fehler be i Übergabe eines y−Parameters

default-Parameter y = countbenutzerdefinierte Eingabe des y-Parameters führtzu Übergabe zweier Werte eines Parameters

Codebeispiel 20: Änderung der statistischen Eigenschaften

1 ggp lo t ( a i r q u a l i t y _means , aes ( x = Month , y = meanTemp) )+ geom_bar ( stat = " i d e n t i t y " )

3 # s t a t = " i d e n t i t y " ermö g l i c h t das Überschre iben des y−Parameters

Anne Kunstmann Plotten mit GGPlot2

45/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Mapping vs SettingScaling und AchsenverhältnisseFacetsStatistische Transformation

0

20

40

60

80

5 6 7 8 9Month

me

an

Tem

p

zu Codebeispiel 20: Ein Balkendiagramm mit benutzerdefinierter x- und y-Achse

Anne Kunstmann Plotten mit GGPlot2

46/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Export von PlotsZusammenfassungAppendix

Export von Plots

Export und Speicherung von PlotsImplementation über ggsave()

filename Auswahl des Namens und Formatsplot Auswahl des Plots

default Abspeichern des letzten Plots

device Angabe bei unbekanntem Formatpath Auswahl des Speicherpfads

default-Ordner „Dokumente“

scale, width, height Größenanpassungenunit Einheit der Größenanpassung (cm, inch,...)

Anne Kunstmann Plotten mit GGPlot2

47/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Export von PlotsZusammenfassungAppendix

Codebeispiel 21: Automatische Speicherung

1 ggp lo t ( a i r q u a l i t y , aes ( x = Temp , y = Wind ) ) + geom_ po in t ( )ggsave ( " meingraph . pdf " )

3 #Abspeichern a l s PDF unter " meingraph " im Ordner " Dokumente "

Codebeispiel 19: Speicherung mit Pfadangabe

1 g1 <− ggp lo t ( a i r q u a l i t y , aes ( x = Temp , y = Wind ) )+ geom_ po in t ( )

3 g2 <− ggp lo t ( a i r q u a l i t y , aes ( x = Ozone , y = Temp) )+ geom_ po in t ( )

5 ggsave ( " meingraph . png " , g1 , path = "C : / Users /Max Mustermann /Desktop / Graphen " )

#Abspeichern des Graphen g1 a ls PNG unter " meingraph " im Ordner" Graphen "

Anne Kunstmann Plotten mit GGPlot2

48/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Export von PlotsZusammenfassungAppendix

Zusammenfassung

essentielle FragenWelcher Art sind die Daten? stetig, diskretWomit stelle ich die Daten dar? geomWie stelle ich die Daten dar? aesPasse ich die Graphenumgebung des Plots an?coord, theme, scale, facets, ggthemeMuss ich die default-Funktion überschreiben? statWie exportiere und speichere ich Plots? ggsave

Anne Kunstmann Plotten mit GGPlot2

49/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Export von PlotsZusammenfassungAppendix

Fragen?

Anne Kunstmann Plotten mit GGPlot2

50/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Export von PlotsZusammenfassungAppendix

ggtheme

Paket ggthemezusätzliche Gestaltungs- und geom-Funktionen

Funktionengeom_rangeframe() Achsenbeginn bei erstemFunktionswert, Achsenende bei letztem Wertgeom_tufteboxplot() Boxplots nach Tufte

Punkt als MedianLücken als InterquartilabstandLinien als Whiskers

Anne Kunstmann Plotten mit GGPlot2

51/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Export von PlotsZusammenfassungAppendix

Themestheme_economist() Plots des Economist Magazinstheme_solarized() Plots der solarized Farbpalettetheme_solid() benutzerdefinierte Hintergrundfarbe

Scalesscale_colour_economist() Achsen des Economistscale_colour_solarized() Achsen der solarizedPalettescale_colour_excel() Achsen aus Excelscale_colour_colorblind() Achsen für Farbblinde

Anne Kunstmann Plotten mit GGPlot2

52/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Export von PlotsZusammenfassungAppendix

Codebeispiel 22: Tufteboxplot samt Rangeframe-Achse

l i b r a r y ( ggthemes )2 ggp lo t ( diamonds , aes ( x = cut , y = p r i ce ) ) + geom_ t u f t e b o x p l o t ( )

+ geom_rangeframe ( )

●●

0

5000

10000

15000

Fair Good Very Good Premium Idealcut

pri

ce

Anne Kunstmann Plotten mit GGPlot2

53/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Export von PlotsZusammenfassungAppendix

Codebeispiel 23: solarized-Theme mit Economist Legende und Parameter

ggp lo t ( diamonds , aes ( x = carat , y= pr ice , co lour = co lo r ) ) +geom_ po in t ( ) + theme_ s o l a r i z ed ( ) + scale_ co lour _economist (t i t l e =" Farben " )

Anne Kunstmann Plotten mit GGPlot2

54/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Export von PlotsZusammenfassungAppendix

Codebeispiel 24: solarized Theme mit Parameter und Legende für Farbblinde

1 ggp lo t ( diamonds , aes ( x = carat , y= pr ice , co lour = co lo r ) ) +geom_ po in t ( ) + theme_ s o l a r i z ed ( l i g h t = F) + scale_ co lour _c o l o r b l i n d ( )

Anne Kunstmann Plotten mit GGPlot2

55/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Export von PlotsZusammenfassungAppendix

Galleriecoord_polar

http://docs.ggplot2.org/current/coord_polar.html

Anne Kunstmann Plotten mit GGPlot2

56/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Export von PlotsZusammenfassungAppendix

geom_violin

http://docs.ggplot2.org/current/geom_violin.html

Anne Kunstmann Plotten mit GGPlot2

57/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Export von PlotsZusammenfassungAppendix

geom_map

http://docs.ggplot2.org/current/geom_map.html

Anne Kunstmann Plotten mit GGPlot2

58/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Export von PlotsZusammenfassungAppendix

Ein Porträt

Porträt von Hadley Wickham erstellt mit GGPlot2 von David Kahle und GarrettGrolemund

http://priceonomics.com/hadley-wickham-the-man-who-revolutionized-r/

Anne Kunstmann Plotten mit GGPlot2

59/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

Quellenverzeichnis

http://www.ggplot.org

http://www.statmethods.net/graphs/creating.html

http://www.tutorialspoint.com/r/r_pie_charts.htm

https://en.wikipedia.org/wiki/Ggplot2

http://www.sthda.com/english/wiki/ggplot2-histogram-plot-quick-start-guide-r-software-and-data-visualization

http://www.sthda.com/english/wiki/ggplot2-histogram-plot-quick-start-guide-r-software-and-data-visualization

http://ggplot2.org/book/qplot.pdf

http://varianceexplained.org/RData/lessons/lesson2/segment2/

http://www.aridhia.com/technical-tutorials/the-fundamentals-of-ggplot-explained/

http://varianceexplained.org/r/why-I-use-ggplot2/

Anne Kunstmann Plotten mit GGPlot2

60/60

EnführungPreprocessing

GrundlagenGestaltungSonstiges

https://rpubs.com/hadley/ggplot2-layers

http://www.cookbook-r.com/Graphs/Facets_%28ggplot2%29/

http://www.cookbook-r.com/Graphs/Axes_%28ggplot2%29/

http://www.cookbook-r.com/Graphs/Legends_%28ggplot2%29/

https://cran.r-project.org/web/packages/ggthemes/vignettes/ggthemes.html

http://varianceexplained.org/r/why-I-use-ggplot2/

http://tutorials.iq.harvard.edu/R/Rgraphics/Rgraphics.html

http://docs.ggplot2.org/current/coord_polar.html

http://docs.ggplot2.org/current/geom_violin.html

http://docs.ggplot2.org/current/coord_map.html

Anne Kunstmann Plotten mit GGPlot2