Grafische visualisaties in R met ggplot2

R voor SAS-gebruikers

Melinda Higgins, PhD

Research Professor/Senior Biostatistician Emory University

ggplot2-pakket

ggplot2 hexsticker-logo

  • ggplot2 is een krachtig grafiekpakket voor R
  • "GG" in ggplot staat voor de "grammar of graphics"
  • ggplot2 bouwt grafieken in lagen
  • Eén of meer geometrische objecten worden aan de basislaag toegevoegd
R voor SAS-gebruikers

Lagen - basislaag

# Create plot for x=sex and y=diameter
ggplot(data = abalone, aes(sex, diameter))
  • Definieer de basislaag met ggplot()
  • Stel data = abalone in
  • Stel aes in op sex en diameter

  • Nog geen grafische objecten

  • x-as klaar voor sex
  • y-as klaar voor diameter
  • raster ligt al klaar

ggplot2 grafische omgeving, nog geen boxplot

R voor SAS-gebruikers

Lagen - boxplot-geom toevoegen

# Add boxplot geometric object or geom
ggplot(data = abalone,
       aes(sex, diameter)) +
  geom_boxplot()
  • Met + voeg je een laag toe
  • Boxplot geom_boxplot() toegevoegd

  • Resultaat is een reeks boxplots

  • Abalonedia meters per geslacht
  • F female, I infant en M male

ggplot2 boxplots toegevoegd

R voor SAS-gebruikers

Lagen - een thema toevoegen

# Add black white theme
ggplot(data = abalone,
       aes(sex, diameter)) +
  geom_boxplot() +
  theme_bw()
  • Voeg een "theme"-laag toe met theme_bw()
  • Verwijdert grijze achtergrond
  • Tekent zwarte rand om de plot

ggplot2 boxplot met black-white-thema

R voor SAS-gebruikers

Vervang boxplot-geom door violin-geom

# Change to geom_violin()
ggplot(data = abalone,
       aes(sex, diameter)) +
  geom_violin() +
  theme_bw()
  • geom_violin vervangt geom_boxplot
  • Maakt een vioolvorm
  • Toont de dichtheidsverdeling
  • Kleine wijziging, nieuwe figuur

ggplot2 vioolplot

R voor SAS-gebruikers

Histogram met één variabele

# Make histogram of shuckedWeight
ggplot(abalone, aes(shuckedWeight)) +
  geom_histogram()
  • Maak een histogram voor één variabele
  • Eén variabele = één esthetiek
  • Voeg geom_histogram() toe
  • Stel aes() in op shuckedWeight
  • Standaardkleuren moeten anders

ggplot2 histogram helemaal zwart

R voor SAS-gebruikers

Histogram kleuren toevoegen

# Make lines black and fill light blue
ggplot(abalone, aes(shuckedWeight)) +
  geom_histogram(color = "black",
                 fill = "lightblue")
  • Pas grafische parameters aan
  • Stel color van de bintervallijnen in
  • Stel fill-kleur voor de bins in
  • Elke optie gaat binnen de ()
  • Het histogram oogt veel beter

ggplot2 histogram met blauwe balken en zwarte lijnen eromheen

R voor SAS-gebruikers

Histogram: titel en aslabels toevoegen

# Add x, y axis labels and title
ggplot(abalone, aes(shuckedWeight)) +
  geom_histogram(color = "black",
                 fill = "lightblue") +
  xlab("Shucked Weight") +
  ylab("Frequency Counts") +
  ggtitle("Shucked Weights Histogram")
  • Voeg betere aslabels en titel toe
  • Gebruik xlab() en ylab() voor de assen
  • Gebruik ggtitle() voor de titel
  • Deze figuur is publiceerbaar!

ggplot2 histogram met aslabels en titel

R voor SAS-gebruikers

Maak een scatterplot

# Make scatterplot with geom_point()
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point()
  • Een scatterplot-aes heeft twee variabelen nodig
  • geom_point() voegt de punten toe
  • Spreidingsdiagram van schelpgewicht per aantal ringen

ggplot2 scatterplot van shellWeight per rings

R voor SAS-gebruikers

Scatterplot: vloeiende lijn toevoegen

# Add smoothed fit line
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point() +
  geom_smooth()
  • Voeg aan de scatterplot een geom_smooth()-lijn toe
  • Inclusief gearceerde betrouwbaarheidsband

ggplot2 scatterplot met vloeiende trendlijn

R voor SAS-gebruikers

Maak panelen per andere variabele

# Add panels using facet_wrap()
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point() +
  geom_smooth() +
  facet_wrap(vars(sex))
  • Voeg nog een laag toe aan de scatterplot
  • Maak panelen per abalone-geslacht
  • Voeg facet_wrap()-laag toe
  • vars(sex) bepaalt de variabele voor panelen

ggplot2 scatterplot met 3 panelen per geslacht

R voor SAS-gebruikers

Rest van de cursus

  • Hoofdstuk 1 sluit af met een korte intro tot grafieken
    • basis met ggplot2-vaardigheden
    • visualiseer abalonematen per geslacht
  • Hoofdstuk 2 behandelt data wrangling
    • maak de abalone-gegevensset schoon
  • Hoofdstuk 3 behandelt data-exploratie
    • beschrijvende statistiek, correlaties en vergelijkende toetsen
  • Hoofdstuk 4 behandelt modelleren en resultaten tonen
    • voorspel abaloneleeftijden op basis van metingen
    • onderzoek modellen per geslacht
R voor SAS-gebruikers

Laten we wat plots maken voor abalones

R voor SAS-gebruikers

Preparing Video For Download...