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 grafiekenpakket voor R
  • "GG" in ggplot staat voor "grammar of graphics"
  • ggplot2 bouwt grafieken in lagen
  • Je voegt één of meer geometrische objecten toe aan de basislaag
R voor SAS-gebruikers

Lagen - basislaag

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

  • Nog geen geometrische objecten

  • x-as klaar voor sex
  • y-as klaar voor diameter
  • raster ligt 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: reeks boxplots

  • Abalonediameters per geslacht
  • F vrouw, I jong, M man

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 een zwarte rand om de plot

ggplot2 boxplot met zwart-witthema

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 dichtheidsverdeling
  • Kleine aanpassing voor 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 esthetic
  • Voeg geom_histogram() toe
  • Zet aes() op shuckedWeight
  • Standaardkleuren moeten anders

ggplot2 histogram alles 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 opties aan
  • Stel color van randen in
  • Stel fill voor balken in
  • Opties staan binnen de ()
  • Histogram oogt veel beter

ggplot2 histogram met blauwe balken en zwarte lijnen rond balken

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 assen
  • Gebruik ggtitle() voor de titel
  • Deze figuur is publiceerbaar

ggplot2 histogram met aslabels en titel

R voor SAS-gebruikers

Scatterplot maken

# Make scatterplot with geom_point()
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point()
  • Een scatterplot aes heeft twee variabelen
  • geom_point() voegt punten toe
  • Scatterplot: schelpgewicht vs. ringen

ggplot2 scatterplot van shellweight per rings

R voor SAS-gebruikers

Scatterplot: gladde trendlijn toevoegen

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

ggplot2 scatterplot met gladde trendlijn

R voor SAS-gebruikers

Panelen maken per andere variabele

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

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
    • basisvaardigheden met ggplot2
    • abalonemetingen per geslacht visualiseren
  • Hoofdstuk 2: data wrangling
    • abalone-dataset opschonen
  • Hoofdstuk 3: data verkennen
    • beschrijvende statistiek, correlaties, vergelijkende tests
  • Hoofdstuk 4: modelleren en resultaten presenteren
    • abaloneleeftijden voorspellen uit metingen
    • modellen per geslacht onderzoeken
R voor SAS-gebruikers

Laten we wat plots voor abalones maken

R voor SAS-gebruikers

Preparing Video For Download...