- Bereid de gegevens voor
- Basis spreidingsdiagrammen
- Label punten in de spreidingsplot
- Voeg regressielijnen toe
- Verander het uiterlijk van punten en lijnen
- Spreidingsplots met meerdere groepen
- Wijzig de puntkleur/vorm/grootte automatisch
- Voeg regressielijnen toe
- Wijzig de puntkleur/vorm/grootte handmatig
- Voeg marginale tapijten toe aan een spreidingsplot
- Spreidingsplots met de 2D-dichtheidsschatting
- Spreidingsplots met ellipsen
- Scatter plots met rechthoekige bakken
- Spreidingsplot met marginale dichtheidsverdelingsplot
- Aangepaste spreidingsdiagrammen
- Info's
In dit artikel wordt beschreven hoe u eenspreidingsplotgebruik makend vanR-softwareEnggplot2pakket. De functiegeom_point()is gebruikt.
Gerelateerd boek:
mtcarsin de onderstaande voorbeelden worden datasets gebruikt.
# Converteer cyl-kolom van een numerieke naar een factorvariabelemtcars$cyl <- as.factor(mtcars$cyl)head(mtcars)
## mpg cyl disp hp drat wt qsec vs am gear carb## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4## Datsun 71 0 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17. 02 0 0 3 2## Dapper 18,1 6 225 105 2,76 3,460 20,22 1 0 3 1
Eenvoudige spreidingsplots worden gemaakt met behulp van de onderstaande R-code. De kleur, de grootte en de vorm van punten kunnen worden gewijzigd met behulp van de functiegeom_point()als volgt :
geom_point(grootte, kleur, vorm)
bibliotheek(ggplot2)# Basic scatter plotggplot(mtcars, aes(x=wt, y=mpg)) + geom_point()# Wijzig de puntgrootte en vormggplot(mtcars, aes(x=wt, y=mpg)) + geom_point(size=2, shape=23)
Merk op dat de grootte van de punten kan worden geregeld door de waarden van een continue variabele, zoals in het onderstaande voorbeeld.
# Wijzig de puntgrootteggplot(mtcars, aes(x=wt, y=mpg)) + geom_point(aes(size=qsec))
Lees meer over puntvormen:ggplot2 puntvormen
De functiegeom_text()kan worden gebruikt :
ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() + geom_text(label=rijnamen(mtcars))
Lees meer over tekstannotaties:ggplot2 - voeg teksten toe aan een plot
Voeg regressielijnen toe
De onderstaande functies kunnen worden gebruikt om regressielijnen toe te voegen aan een spreidingsplot:
- geom_smooth()Enstat_smooth()
- geom_abline()
geom_abline()is al beschreven op deze link:ggplot2 voeg rechte lijnen toe aan een plot.
Alleen de functiegeom_smooth()wordt in dit gedeelte behandeld.
Een vereenvoudigd formaat is:
geom_smooth(methode="auto", se=TRUE, fullrange=FALSE, level=0.95)
- methode: te gebruiken afvlakkingsmethode. Mogelijke waarden zijn lm, glm, gam, löss, rlm.
- methode = "löss": Dit is de standaardwaarde voor een klein aantal waarnemingen. Het berekent een soepele lokale regressie. U kunt er meer over lezenlössmet behulp van de R-code?löss.
- methode =“lm”: Het past eenlineair model. Merk op dat het ook mogelijk is om de formule aan te geven alsformule = y ~ poly(x, 3)om een polynoom van graad 3 te specificeren.
- met: logische waarde. Indien WAAR, wordt het betrouwbaarheidsinterval rond glad weergegeven.
- volledig bereik: logische waarde. Indien WAAR, omvat de aanpassing het volledige bereik van de plot
- niveau: niveau van te gebruiken betrouwbaarheidsinterval. De standaardwaarde is 0,95
# Voeg de regressielijn toeggplot(mtcars, aes(x=wt, y=mpg)) + geom_point()+ geom_smooth(method=lm)# Verwijder het betrouwbaarheidsintervalggplot(mtcars, aes(x=wt, y=mpg)) + geom_point()+ geom_smooth(method=lm, se=FALSE)# Löss-methodeggplot(mtcars, aes (x=wt, y=mpg)) + geom_point()+ geom_smooth()
Verander het uiterlijk van punten en lijnen
In dit gedeelte wordt beschreven hoe u kunt wijzigen:
- de kleur en de vorm van punten
- het lijntype en de kleur van de regressielijn
- de vulkleur van het betrouwbaarheidsinterval
# Verander de puntkleuren en -vormen# Verander het lijntype en colorggplot(mtcars, aes(x=wt, y=mpg)) + geom_point(shape=18, color="blue")+ geom_smooth(method=lm, se=FALSE, linetype="dashed", color="darkred")# Verander de betrouwbaarheidsinterval vulling colorggplot(mtcars, aes(x=wt, y=mpg)) + geom_point( shape=18, color="blue")+ geom_smooth(method=lm, linetype="dashed", color="darkred", fill="blue")
Merk op dat er standaard een transparante kleur wordt gebruikt voor de betrouwbaarheidsband. Dit kan worden gewijzigd door het argument te gebruikenalfa:geom_smooth(fill=“blauw”, alpha=1)
Lees meer over puntvormen:ggplot2 puntvormen
Lees meer over lijntypen:ggplot2 lijntypen
In dit gedeelte wordt beschreven hoe u puntkleuren en -vormen automatisch en handmatig kunt wijzigen.
Wijzig de puntkleur/vorm/grootte automatisch
In de onderstaande R-code worden puntvormen, kleuren en afmetingen bepaald door de niveaus van de factorvariabelecil:
# Verander puntvormen door de niveaus van cylggplot(mtcars, aes(x=wt, y=mpg, shape=cyl)) + geom_point()# Verander puntvormen en kleurenggplot(mtcars, aes(x=wt, y=mpg, shape=cyl, color=cyl)) + geom_point()# Verander puntvormen, kleuren en matenggplot(mtcars, aes(x=wt, y=mp g, vorm=cyl, kleur=cyl, maat=cyl)) + geom_point()
Voeg regressielijnen toe
Regressie lijnenkan als volgt worden toegevoegd:
# Voeg regressielijnen toeggplot(mtcars, aes(x=wt, y=mpg, color=cyl, shape=cyl)) + geom_point() + geom_smooth(method=lm)# Verwijder betrouwbaarheidsintervallen# Verleng de regressielijnenggplot(mtcars, aes(x=wt, y=mpg, color=cyl, shape=cyl)) + geom_point() + geom_smooth(meth od=lm, se=ONWAAR, volledig bereik=WAAR)
Merk op dat u ook het lijntype van de regressielijnen kunt wijzigen door de esthetiek te gebruikenlijntype = cil.
De vulkleur van betrouwbaarheidsbanden kan als volgt worden gewijzigd:
ggplot(mtcars, aes(x=wt, y=mpg, color=cyl, shape=cyl)) + geom_point() + geom_smooth(method=lm, aes(fill=cyl))
Wijzig de puntkleur/vorm/grootte handmatig
Onderstaande functies worden gebruikt:
- scale_shape_manual()voor puntvormen
- scale_color_manual()voor puntkleuren
- scale_size_manual()voor puntmaten
# Verander puntvormen en kleuren handmatigggplot(mtcars, aes(x=wt, y=mpg, color=cyl, shape=cyl)) + geom_point() + geom_smooth(method=lm, se=FALSE, fullrange=TRUE)+ scale_shape_manual(values=c(3, 16, 17))+ scale_color_manual(values=c('#999999',' #E69F00', '#56B4E9'))+ theme(legend.position="top") # Wijzig de puntgroottes handmatigggplot(mtcars, aes(x=wt, y=mpg, color=cyl, shape=cyl))+ geom_point(aes(size=cyl)) + geom_smooth(method=lm, se=FALSE, fullrange=TRUE)+ scale_shape_manual(values=c (3, 16, 17))+ scale_color_manual(values=c('#999999','#E69F00', '#56B4E9'))+ scale_size_manual(values=c(2,3,4))+ thema(legend.position="top")
Het is ook mogelijk omhandmatig punt- en lijnkleuren wijzigenmet behulp van de functies:
- schaal_kleur_brewer(): om kleurenpaletten van te gebruikenRColorBrewerpakket
- schaal_kleur_grijs(): om grijze kleurenpaletten te gebruiken
p <- ggplot(mtcars, aes(x=wt, y=mpg, color=cyl, shape=cyl)) + geom_point() + geom_smooth(method=lm, se=FALSE, fullrange=TRUE)+ theme_classic()# Gebruik het kleurenpalet van de brouwersp+scale_color_brewer(palette="Dark2")# Gebruik grijsschaalp + scale_color_grey()
Lees hier meer over ggplot2-kleuren:ggplot2 kleuren
De functiegeom_kleed()kan worden gebruikt :
geom_rug(zijkanten = "bl")
kanten: een tekenreeks die bepaalt aan welke kant van de plot de tapijten verschijnen. Toegestane waarde is een tekenreeks die "trbl" bevat voor boven, rechts, onder en links.
# Voeg marginale tapijten toeggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() + geom_rug()# Verander kleurenggplot(mtcars, aes(x=wt, y=mpg, color=cyl)) + geom_point() + geom_rug()# Voeg marginale tapijten toe met getrouwe dataggplot(faithful, aes(x=uitbarstingen, y=wachten)) + geom_punt() + geom_rug()
De functiesgeom_density_2d()ofstat_density_2d()kan worden gebruikt :
# Spreidingsplot met de schattingen van de 2D-dichtheidsp <- ggplot(trouw, aes(x=uitbarstingen, y=wachten)) + geom_point()sp + geom_density_2d()# Verloopkleurenp + stat_density_2d(aes(fill = ..level..), geom="polygon")# Wijzig de verloopkleurenp + stat_density_2d(aes(fill = ..level ..), geom="polygoon")+ scale_fill_gradient(low="blue", high="red")
Lees hier meer over ggplot2-kleuren:ggplot2 kleuren
De functiestat_ellipse()kan als volgt worden gebruikt:
# Eén ellips rond alle puntenggplot(faithful, aes(wachten, uitbarstingen))+ geom_point()+ stat_ellipse()# Ellips by groupp <- ggplot(faithful, aes(waiting, uitbarstingen, kleur = uitbarstingen > 3))+ geom_point()p + stat_ellipse()# Wijzig het type ellipsen: mogelijke waarden zijn "t", "norm ", "euclid"p + stat_ellipse(type = "norm")
Het aantal waarnemingen wordt in elke bak geteld en weergegeven met behulp van een van de onderstaande functies:
- geom_bin2d()voor het toevoegen van een heatmap van 2D bin counts
- start_bin_2d()voor het tellen van het aantal waarnemingen in rechthoekige bakken
- stat_summary_2d()functie toepassen voor 2D rechthoekige bakken
De vereenvoudigde formaten van deze functies zijn:
plot + geom_bin2d(...)plot+stat_bin_2d(geom=NULL, bins=30)plot + stat_summary_2d(geom = NULL, bins = 30, fun = mean)
- geom: geometrisch object om de gegevens weer te geven
- bakken: Aantal bakken in zowel verticale als horizontale richting. De standaardwaarde is 30
- plezier: functie voor samenvatting
De datasetsdiamantenvan ggplot2 pakket wordt gebruikt:
hoofd (diamanten)
## karaat geslepen kleur helderheid diepte tabel prijs x y z## 1 0,23 Ideaal E SI2 61,5 55 326 3,95 3,98 2,43## 2 0,21 Premium E SI1 59,8 61 326 3,89 3,84 2,31## 3 0,23 Goed E VS1 56,9 65 327 4. 05 4,07 2,31## 4 0,29 Premium I VS2 62,4 58 334 4,20 4,23 2,63## 5 0,31 Goed J SI2 63,3 58 335 4,34 4,35 2,75## 6 0,24 Zeer goed J VVS2 62,8 57 336 3,9 4 3,96 2,48
# Plotp <- ggplot(diamanten, aes(karaat, prijs))p + geom_bin2d()
Wijzig het aantal bakken:
# Verander het aantal binsp + geom_bin2d(bins=10)
Of specificeer de breedte van bakken:
# Of specificeer de breedte van binsp + geom_bin2d(binwidth=c(1, 1000))
Stap 1/3. Maak enkele gegevens aan:
set.seed(1234)x <- c(rnorm(500, gemiddelde = -1), rnorm(500, gemiddelde = 1,5))y <- c(rnorm(500, gemiddelde = 1), rnorm(500, gemiddelde = 1,7))groep <- as.factor(rep(c(1,2), elk=500))df <- data.frame(x, y, groep)head(df)
## x y groep## 1 -2.20706575 -0.2053334 1## 2 -0.72257076 1.3014667 1## 3 0.08444118 -0.5391452 1## 4 -3.34569770 1.6353707 1## 5 -0.5 7087531 1,7029518 1## 6 -0,49394411 -0,9058829 1
Stap 2/3. Maak de percelen:
# scatterplot van x- en y-variabelen# color by groupsscatterPlot <- ggplot(df,aes(x, y, color=group)) + geom_point() + scale_color_manual(values = c('#999999','#E69F00')) + theme(legend.position=c(0,1), legend.justification=c(0,1))scatterPlot# Marginale dichtheidsplot van x (bovenste paneel)xdensity <- ggplot(df, aes(x, fill=group)) + geom_density(alpha=.5) + scale_fill_manual(values = c('#999999','#E69F00')) + theme(legend.position = "none")xdensity# Marginale dichtheidsplot van y (rechterpaneel)ydensiteit <- ggplot(df, aes(y , fill=group)) + geom_density(alpha=.5) + scale_fill_manual(values = c('#999999','#E69F00')) + theme(legend.position = "none")ydensity
Maak een lege plaatshouderplot:
blankPlot <- ggplot()+geom_blank(aes(1,1))+ theme(plot.background = element_blank(), panel.grid.major = element_blank(), panel.grid.minor = element_blank(), panel.border = element_blank(), panel.background = element_blank(), as.titel.x = element_blank(), as.titel.y = element_blank(), as.tekst.x = element _blank(), as.tekst.y = element_blank(), as.tekens = element_blank() )
Stap 3/3. Zet de percelen bij elkaar:
Om meerdere percelen op dezelfde pagina te plaatsen, is het pakketgridExtrakan worden gebruikt. Installeer het pakket als volgt:
install.packages("gridExtra")
Schik ggplot2 met aangepaste hoogte en breedte voor elke rij en kolom:
library("gridExtra")grid.arrange(xdensity, blankPlot, scatterPlot, ydensity, ncol=2, nrow=2, widths=c(4, 1.4), heights=c(1.4, 4))
Lees meer over het rangschikken van meerdere ggplots op één pagina:ggplot2 - Gemakkelijke manier om meerdere grafieken op dezelfde pagina te mixen
# Basic scatter plotggplot(mtcars, aes(x=wt, y=mpg)) + geom_point()+ geom_smooth(method=lm, color="black")+ labs(title="Miles per gallon \n volgens het gewicht", x="Weight (lb/1000)", y = "Miles/(US) gallon")+ theme_classic() # Wijzig kleur/vorm per groep# Verwijder betrouwbaarheidsbandensp <- ggplot( mtcars, aes(x=wt, y=mpg, color=cyl, shape=cyl)) + geom_point()+ geom_smooth(method=lm, se=FALSE, fullrange=TRUE)+ labs(title="Miles per gallon \n volgens het gewicht", x="Weight (lb/1000)", y = "Miles/(US) gallon")p + theme_classic()
Wijzig kleuren handmatig:
# Continue kleurenp + scale_color_brewer(palette="Paired") + theme_classic()# Discrete kleurenp + scale_color_brewer(palette="Dark2") + theme_minimal()# Verloopkleurenp + scale_color_brewer(palette="Accent") + theme_minimal()
Lees hier meer over ggplot2-kleuren:ggplot2 kleuren
Deze analyse is uitgevoerd met behulp vanR-software(versie 3.2.4) enggplot2(versie 2.1.0)