Computers

Beginnend met ggplot2 in R

Schrijver: Laura McKinney
Datum Van Creatie: 3 April 2021
Updatedatum: 13 Kunnen 2024
Anonim
R BOOTCAMP DATA TYPES IN R PROGRAMMING (Factors, Strings, Data Frames, Dates) R Statistics Part 2/9
Video: R BOOTCAMP DATA TYPES IN R PROGRAMMING (Factors, Strings, Data Frames, Dates) R Statistics Part 2/9

Inhoud

Harsh is een SQL DBA met meer dan 13 jaar ervaring. Hij heeft gewerkt aan de meeste technologieën die verband houden met SQL Server. Hij houdt van politiek, van lezen

Met behulp van ggplot2

Introductie van ggplot2-pakket

Een van de belangrijkste aspecten van data-analyse is de visualisatie van de data. Visualisatie is waarschijnlijk het krachtigste aspect waarmee u uw gegevens vanuit verschillende hoeken kunt bekijken. Het stelt je ook in staat om je conclusies zeer krachtig over de hele linie te brengen. Een afbeelding zegt meer dan duizend woorden.

R heeft duizenden verschillende pakketten die verschillende taken kunnen uitvoeren. ggplot2 is zo'n pakket dat is ontworpen voor het maken en weergeven van plots.

Dus in dit artikel ga ik laten zien hoe we een plot kunnen construeren met ggplot2 in R vanaf het begin. Ik ga beginnen met een lege plot en er vervolgens elementen aan toevoegen om enkele basisplots te bouwen.


Merk op dat het pakket ggplot2 heet.

De eigenlijke functie die we zullen gebruiken voor het maken van plots, heet ggplot.

Dit kan verwarrend zijn, maar ik ben bang dat ze zo worden genoemd.

Het pakket is dus ggplot2 en de functie die we uit dat pakket gebruiken, heet ggplot.

Rechtsaf.

Objectief

Het doel van dit artikel is niet om een ​​mooi en geweldig plot te bouwen. Het doel is om de lezer kennis te laten maken met het proces van het stukje bij beetje opbouwen van een plot.

Met behulp van dit artikel zou je in staat moeten zijn om verschillende elementen van het ggplot2-plot-systeem te begrijpen en hoe je ze kunt gebruiken. Houd er echter rekening mee dat dit slechts een basisintroductie is van het ggplot2-plot-systeem. In werkelijkheid is ggplot2 een zeer krachtig maar extreem uitgebreid plot-systeem en u kunt er gemakkelijk een boek over schrijven.

Dit bericht behandelt echter enkele basisbouwstenen van een ggplot-grafiek en bouwt drie grafieken met behulp van die basisbouwstenen.

Bouwstenen van ggplot

Voordat we dat doen, moeten we de basisbouwstenen van een ggplot-grafiek begrijpen.


  • Plot - Dit is het plotgebied waarop we het perceel zullen bouwen.
  • Gegevens - Dit zijn de gegevens die in de plot zullen worden gebruikt.
  • Esthetische mapping - Dit is de organisatie van uw gegevens op het perceel. Dit vertelt ggplot welke datapunten op welke as gaan, welke kleur ze zouden moeten hebben, welke vorm ze zouden moeten hebben enz. Esthetische mapping bepaalt in feite het visuele aspect van de geometrische objecten die we plotten.
  • Geom - Dit zijn de verschillende geometrische objecten die we op het plotgebied zullen plaatsen. Dit kunnen vormen zijn zoals een punt voor een scatterplot, lijnen, curven, enz. Deze objecten vertegenwoordigen uw gegevens op de plot.

Elk van deze blokken wordt vertegenwoordigd door functies in R. Dus in principe zullen we voor elk van deze blokken een functie schrijven.

Er is veel meer te ggplot dan dit, maar voorlopig zullen we beginnen met echt te zien hoe deze vier elementen werken.

Laten we beginnen

Dus laten we zonder verder oponthoud R opstarten en beginnen met het bouwen van een ggplot-grafiek.


Maar voordat u ggplot2 kunt gaan verkennen, moet u het installeren als u dit nog niet heeft gedaan.

Installeer ggplot2-pakket

install.packages ("ggplot2")

Laten we dit pakket laden zodra deze installatie is voltooid.

bibliotheek (ggplot2)

Maak een leeg plot

Nu we het ggplot2-pakket hebben geïnstalleerd en geladen, gaan we een plot vanaf nul bouwen. Dus eerst moeten we het eerste element bouwen dat we eerder hebben geïntroduceerd.

Perceel - Dit is het plotgebied waarop we het perceel zullen bouwen.

ggplot ()

Dat is het. Merk op dat de functienaam die we hebben gebruikt ggplot is. Het is niet ggplot2. ggplot2 is de pakketnaam die deze functie bevat.

Dit zal een lege plot creëren. Je zou dit moeten kunnen zien in het plotsvenster van R Studio.

Voer gegevens in om te plotten

Laten we nu naar het tweede punt gaan.

Gegevens - Dit zijn de gegevens die in de plot zullen worden gebruikt.

Laten we wat gegevens aan ggplot geven. Dit wordt niet uitgezet. Maar we maken slechts enkele gegevens toegankelijk voor de plot. Houd er ook rekening mee dat ggplot alleen dataframe-objecten accepteert als de gegevens. Het accepteert geen matrix, vector, lijst of enig ander gegevenstype. Ik begrijp deze beperking niet, maar zo is het.

Voor deze demonstratie ga ik een ingebouwde dataset gebruiken in R genaamd iris. Dit maakt deel uit van de basis R en u hoeft hiervoor geen extra pakket te installeren.

U kunt zien wat deze gegevens zijn door de volgende opdracht uit te voeren in R.

hoofd (iris)

Zoals u kunt zien, heeft het vijf velden. Vier van deze velden zijn numeriek en de laatste is categorisch. Deze dataset bevat metingen van 150 bloemen van 3 verschillende soorten IRIS-bloemen.

Deze dataset heeft vier numerieke metingen en één veld dat de soort van de bloem identificeert. Nu zullen we deze dataset gebruiken en kijken hoe we deze data kunnen plotten met ggplot2.

Laten we deze gegevens nu naar de ggplot sturen. U doet dit door een parameter met de naam data door te geven aan de ggplot-functie, zoals hieronder wordt weergegeven. De gegevens die we naar ggplot hebben gevoerd, is een dataframe met de naam iris.

ggplot (data = iris).

Esthetische in kaart brengen

Uw plot zal nog steeds leeg zijn. Met deze opdracht hebben we zojuist de dataframe-iris doorgegeven aan ggplot. Laten we nu naar het derde punt gaan.

Esthetische mapping - Dit is de organisatie van uw gegevens op het perceel.

Nu zullen we de esthetische mapping voor de gegevens definiëren. In de eenvoudigste vorm definiëren we gewoon welke gegevens op de X-as moeten gaan en wat op de Y-as moet. U doet dit door een andere functie met de naam aes door te geven aan de ggplot-functie.

ggplot (data = iris, mapping = aes (x = Sepal.Length, y = Sepal.Width))

Met deze opdracht hebben we ggplot verteld om de kelkbladlengte op de X-as en de kelkbladbreedte op de Y-as te plaatsen. Laten we nu eens kijken naar ons plot. Het ziet er zo uit.

Eerder was de plot blanco. Nu kunnen we twee assen zien. Op de X-as zien we de kelkbladlengte en op de Y-as zien we de kelkbladbreedte. Het heeft ook een mooi klein raster uitgezet op basis van waarden van kelkbladlengte en kelkbladbreedte.

Maar we zien nog steeds geen gegevenspunten op de plot. Het enige dat onze opdracht heeft gedaan, is de plot opmaken. Dat is precies wat de ggplot-functie zal doen.

Nu komen we bij het vierde punt.

Geom

Het feitelijke plotten van gegevens op de plot wordt gedaan door geometrische objecten, d.w.z. geom. Laten we nu de geom aan onze plot toevoegen.

Hiervoor voegen we geom ._ * functies toe aan de ggplot-functie zoals hieronder getoond. Merk op dat deze opdracht niet compleet is. Maar wanneer u tot nu toe typt, ziet u een lijst met beschikbare geom-opties.

ggplot (data = iris, mapping = aes (x = Sepal.Length, y = Sepal.Width)) + geom_

U kunt de opties in de onderstaande schermafbeelding zien. Welke geom u kiest, hangt af van wat voor soort perceel u wilt.

Laten we nu de opdracht voltooien. Voor deze demonstratie zal ik een scatterplot uitzetten dat alleen uit punten bestaat.

ggplot (data = iris, mapping = aes (x = Sepal.Length, y = Sepal.Width)) + geom_point ()

Laten we nu eens kijken naar ons plot.

Ons eerste perceel met ggplot

En daar ben je. Je eerste plot met ggplot is klaar.

Maar het is een beetje saai, nietwaar? Laten we er wat kleur aan toevoegen.

ggplot (data = iris, mapping = aes (x = Sepal.Length, y = Sepal.Width)) + geom_point (kleur = "rood")

Kunt u het verschil zien tussen deze opdracht en de eerdere? Ik heb een parameter met de naam color to geom point toegevoegd en de waarde rood doorgegeven. Dit vertelt ggplot om alle punten rood te kleuren.

Dit is hoe ons plot er nu uitziet.

Laten we zeggen dat ik de punten in mijn scatterplot verveel en dat ik de vorm van mijn punten wil veranderen. Ik voeg nog een parameter toe met de naam vorm en geef deze de waarde van vier door. Zoals je kunt zien in de schermafbeelding onder deze opdracht, heeft ggplot de vorm van de punten in de scatterplot veranderd.

ggplot (data = iris, mapping = aes (x = Sepal.Length, y = Sepal.Width)) + geom_point (color = "rood", vorm = 4)

Nou, ik neem aan dat je de foto begrijpt, nietwaar? Om de punten te wijzigen, voegt u meer parameters toe aan de geom-functie.

Welke parameters u kunt doorgeven, is afhankelijk van de geom die u gebruikt. Dit is slechts het topje van de ijsberg en als je dieper in ggplot gaat graven, zul je de mogelijkheden bijna eindeloos vinden.

Laten we nu de geom van punt naar lijn veranderen. Dit genereert een lijnplot in plaats van een spreidingsplot.

ggplot (data = iris, mapping = aes (x = Sepal.Length, y = Sepal.Width)) + geom_line (color = "rood", vorm = 4)

Zoals je kunt zien, veranderde het de punten in lijn. Hoe zit het met het plotten van een numerieke variabele en een andere categorische variabele?

In onze data iris is soort een categorische data. Het is niet numeriek zoals lengte of breedte, maar een klasse.

Laten we nog een scatterplot plotten, maar in plaats van de kelkbladlengte op de X-as, laten we de soorten op de X-as plotten. Je kunt zien dat ik hiervoor de ggplot-functie aes moet wijzigen. In plaats van kelkbladlengte heb ik soorten doorgegeven aan de x-as.

ggplot (data = iris, mapping = aes (x = Species, y = Sepal.Width)) + geom_point (color = "red")

En dit is de output die we krijgen.

Maar in het algemeen, als u een categorische variabele tegen een numerieke variabele wilt plotten, wilt u misschien een boxplot plotten in plaats van een spreidingsplot. Boxplot toont mediaan, minimum en maximum waarden en toont ook uitschieters.

Laten we nu dus een boxplot plotten in plaats van een spreidingsplot. Dus nu veranderen we de geom van punt- naar boxplot.

ggplot (data = iris, mapping = aes (x = soort, y = Sepal.Width)) + geom_boxplot (kleur = "rood")

Ben je al uitgekeken op rood? Laten we de kleur van deze vakken veranderen en ook een vulkleur aan de vakken toevoegen.

ggplot (data = iris, mapping = aes (x = Soort, y = Sepal.Width)) + geom_boxplot (kleur = "paars", fill = "zwart")

Samenvatting

Dus tot nu toe hebben we een spreidingsplot, lijnplot en een boxplot gemaakt. We hebben er wat kleur aan toegevoegd.

Je kunt veel meer doen dan deze 3 plots die ik tot nu toe heb geïllustreerd. Realistisch gezien is de kracht van ggplot bijna verbazingwekkend.

Dit is een handig hulpmiddel om in uw gereedschapskist te hebben.

Beperkingen

Maar net als elk gereedschap heeft het ook zijn beperkingen. Het kan zeker geen dingen doen die Lattice kan doen. Het is niet erg goed met 3D-plots en misschien moet je daarvoor rgl gebruiken. Het kan geen grafieken van het type grafiektheorie aan die knooppunten of beslissingsboomstructuren hebben.

Dus dat is het voor deze keer mensen. Laat me alsjeblieft weten wat je ervan vindt in de comments hieronder. Als u verbeteringen in dit bericht wilt, laat het me dan weten en ik zou graag onze suggesties implementeren.

Dit artikel is nauwkeurig en waar voor zover de auteur weet. De inhoud is alleen bedoeld voor informatieve of amusementsdoeleinden en vervangt geen persoonlijk advies of professioneel advies op zakelijk, financieel, juridisch of technisch gebied.

Meer Details

Bewerkers Keuze

Apps verbergen op een iPhone, iPad of iPod Touch
Telefoons

Apps verbergen op een iPhone, iPad of iPod Touch

Max heeft een B. . in ma acommunicatie van IU, een M.A. in communicatie van U of I, en volgt een MBA van Web ter Univer ity.Men en die door de app op uw iPhone, iPad of iPod Touch nuffelen, kunnen ver...
Herziening van de Zeblaze Thor 4 Pro Smartwatch
Computers

Herziening van de Zeblaze Thor 4 Pro Smartwatch

Walter hillington chrijft over producten die hij uit de eer te hand kent. Zijn artikelen richten zich op gezondheid zorg, elektronica, horloge en hui houdelijke artikelen.Al je door een lij t met mijn...