Hajutage graafik R-s, kasutades ggplot2 (koos näitega)

Lang L: none (table-of-contents):

Anonim

Graafikud on andmeanalüüsi protsessi kolmas osa. Esimene osa käsitleb andmete väljavõtmist , teine ​​osa andmete puhastamist ja manipuleerimist . Lõpuks võib tekkida vajadus andmeteadlasel oma tulemused graafiliselt edastada .

Andmeteadlase töö saab üle vaadata järgmisel pildil

  • Andmeteadlase esimene ülesanne on määratleda uurimisküsimus. See uurimisküsimus sõltub projekti eesmärkidest ja eesmärkidest.
  • Pärast seda on üks silmapaistvamaid ülesandeid funktsioonide väljatöötamine. Andmeteadlane peab andmeid koguma, nendega manipuleerima ja neid puhastama
  • Kui see samm on lõpule jõudnud, saab ta hakata andmekogumit uurima. Mõnikord on uue avastuse tõttu vaja algset hüpoteesi täpsustada ja muuta.

  • Kui selgitav analüüs saavutatakse andmed teadlane peab arvestama suutlikkust lugeja mõista põhimõisteid ja mudelid .
  • Tema tulemused tuleks esitada kõigile sidusrühmadele arusaadavas vormis. Üks parimaid meetodeid tulemuste edastamiseks on graafik .
  • Graafikud on uskumatu tööriist keeruka analüüsi lihtsustamiseks.

Selles õpetuses saate teada

  • ggplot2 pakett
  • Hajuvusdiagramm
  • Muuda telge
  • Hajutatud graafik koos sobitatud väärtustega
  • Lisage graafikule teavet
  • Nimetage x-telg ja y-telg ümber
  • Kontrollige kaalusid
  • Teema
  • Salvesta krundid

ggplot2 pakett

See õpetuse osa keskendub sellele, kuidas R-iga graafikuid / diagramme teha

Selles õpetuses kasutate paketti ggplot2. See pakett on üles ehitatud Wilkinsoni 2005. aastal kirjutatud raamatu Grammar of graphics järjepidevale alusele. Ggplot2 on väga paindlik, sisaldab paljusid teemasid ja süžee spetsifikatsioone kõrgel abstraktsioonitasemel. Ggplot2 abil ei saa te kolmemõõtmelist graafikat joonistada ega interaktiivset graafikat luua.

Ggplot2-s koosneb graafik järgmistest argumentidest:

  • andmed
  • esteetiline kaardistamine
  • geomeetriline objekt
  • statistilised teisendused
  • kaalud
  • koordinaatide süsteem
  • asendi korrigeerimine
  • tahuline

Õpetuses saate teada, kuidas neid argumente kontrollida.

Ggplot2 põhisüntaks on:

ggplot(data, mapping=aes()) +geometric objectarguments:data: Dataset used to plot the graphmapping: Control the x and y-axisgeometric object: The type of plot you want to show. The most common object are:- Point: `geom_point()`- Bar: `geom_bar()`- Line: `geom_line()`- Histogram: `geom_histogram()`

Hajuvusdiagramm

Vaatame, kuidas ggplot mtcarsi andmekogumiga töötab. Alustuseks joonistatakse mpg ja drat muutuja hajuvusdiagramm.

Põhiline hajutusskeem

library(ggplot2)ggplot(mtcars, aes(x = drat, y = mpg)) +geom_point()

Koodi selgitus

  • Esmalt edastate andmekogumi mtcars saidile ggplot.
  • Argumendi aes () sees lisate x-telje ja y-telje.
  • + Märk tähendab, et soovite, et R jätkaks koodi lugemist. See muudab koodi rikkudes selle loetavamaks.
  • Geomeetrilise objekti jaoks kasutage geom_point ().

Väljund:

Hajutamisgrupp rühmadega

Mõnikord võib olla huvitav eristada väärtusi andmerühma (st teguri taseme andmete) järgi.

ggplot(mtcars, aes(x = mpg, y = drat)) +geom_point(aes(color = factor(gear)))

Koodi selgitus

  • Geom_pointi () sees olevad aes () kontrollivad rühma värvi. Rühm peaks olema tegurimuutuja. Seega teisendate muutuva käigu teguriks.
  • Kokku on teil koodiaasid (värv = tegur (käik)), mis muudavad punktide värvi.

Väljund:

Muuda telge

Andmete ümberkvalifitseerimine on suur osa andmeteadlase tööst. Harvadel juhtudel on andmed kena kellakujulised. Üks lahendus, kuidas muuta oma andmed kõrvaltoimete suhtes vähem tundlikuks, on nende suuruse muutmine.

ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +geom_point(aes(color = factor(gear)))

Koodi selgitus

  • Teisendate log () muutujad x ja y otse aes () kaardistamise sisse.

Pange tähele, et saab rakendada mis tahes muud teisendust, näiteks standardimist või normaliseerimist.

Väljund:

Hajutatud graafik koos sobitatud väärtustega

Graafikule saate lisada veel ühe teabe. Võite joonistada lineaarse regressiooni sobitatud väärtuse.

my_graph <- ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +geom_point(aes(color = factor(gear))) +stat_smooth(method = "lm",col = "#C42126",se = FALSE,size = 1)my_graph

Koodi selgitus

  • graafik: salvestate graafiku muutuvgraafikusse. See on kasulik edasiseks kasutamiseks või vältida liiga keerukat koodirida
  • Argument stat_smooth () juhib silumismeetodit
  • method = "lm": Lineaarne regressioon
  • col = "# C42126": joone punase värvi kood
  • se = FALSE: Ärge kuvage standardviga
  • suurus = 1: joone suurus on 1

Väljund:

Pange tähele, et saadaval on ka teisi silumismeetodeid

  • glm
  • gam
  • löös: vaikeväärtus
  • velg

Lisage graafikule teavet

Siiani pole me graafikutesse lisanud teavet. Graafikud peavad olema informatiivsed. Lugeja peaks nägema andmeanalüüsi taga olevat lugu, vaadates lihtsalt graafikut ilma täiendavat dokumentatsiooni viitamata. Seega vajavad graafikud häid silte. Funktsiooniga Labs () saate lisada silte.

Lab () süntaks on järgmine:

lab(title = "Hello Guru99")argument:- title: Control the title. It is possible to change or add title with:- subtitle: Add subtitle below title- caption: Add caption below the graph- x: rename x-axis- y: rename y-axisExample:lab(title = "Hello Guru99", subtitle = "My first plot")

Lisage pealkiri

Üks kohustuslik teave, mida lisada, on ilmselgelt pealkiri.

my_graph +labs(title = "Plot Mile per hours and drat, in log")

Koodi selgitus

  • my_graph: Kasutate salvestatud graafikut. See väldib kõigi koodide ümberkirjutamist iga kord, kui lisate graafikule uut teavet.
  • Pange pealkiri labori sisse ().
  • Joon punase värvi kood
  • se = FALSE: Ärge kuvage standardviga
  • suurus = 1: joone suurus on 1

Väljund:

Lisage dünaamilise nimega pealkiri

Dünaamiline pealkiri on abiks pealkirja täpsema teabe lisamisel.

Staatilise teksti ja dünaamilise teksti printimiseks saate kasutada funktsiooni paste (). Pasta () põhisüntaks on:

paste("This is a text", A)arguments- " ": Text inside the quotation marks are the static text- A: Display the variable stored in A- Note you can add as much static text and variable as you want. You need to separate them with a comma

Näide:

A <-2010paste("The first year is", A)

Väljund:

## [1] "The first year is 2010"
B <-2018

paste("The first year is", A, "and the last year is", B)

Väljund:

## [1] "The first year is 2010 and the last year is 2018" 

Meie graafikule saate lisada dünaamilise nime, nimelt mpg keskmise.

mean_mpg <- mean(mtcars$mpg)my_graph + labs(title = paste("Plot Mile per hours and drat, in log. Average mpg is", mean_mpg))

Koodi selgitus

  • Mpg keskmise loote keskmise (mtcars $ mpg) abil, mis on salvestatud muutujasse mean_mpg
  • Dünaamilise pealkirja loomiseks, mis tagastab mpg keskmise väärtuse, kasutate paste () koos mean_mpg-ga

Väljund:

Lisage alapealkiri

Kaks täiendavat detaili võivad muuta teie graafiku selgemaks. Sa räägid alapealkirjast ja pealdisest. Alapealkiri läheb otse pealkirja alla. Pealdised võivad anda teavet selle kohta, kes arvutamise tegi, ja andmete allikast.

my_graph +labs(title ="Relation between Mile per hours and drat",subtitle ="Relationship break down by gear class",caption = "Authors own computation")

Koodi selgitus

  • Laboris () lisasite:
    • title = "Miili tunnis ja drati suhe": lisage pealkiri
    • subtitle = "Seos jaotatuna püügiklasside järgi": lisage alapealkiri
    • caption = "Autorite enda arvutus: lisage pealdis
    • Iga uus teave eraldatakse komaga,
  • Pange tähele, et katkestate koodiread. See ei ole kohustuslik ja aitab ainult koodi lihtsamalt lugeda

Väljund:

Nimetage x-telg ja y-telg ümber

Muutujad ise andmekogumis ei pruugi alati olla selged või kokkuleppeliselt kasutada _, kui on mitu sõna (st GDP_CAP). Te ei soovi, et selline nimi kuvatakse teie graafikus. Oluline on nime muuta või lisada rohkem üksikasju, näiteks ühikud.

my_graph +labs(x = "Drat definition",y = "Mile per hours",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")

Koodi selgitus

  • Laboris () lisasite:
    • x = "Drati määratlus": muutke x-telje nime
    • y = "Mile tunnis": muutke y-telje nime

Väljund:

Kontrollige kaalusid

Saate kontrollida telje skaalat.

Funktsioon seq () on mugav, kui peate looma arvude jada. Põhisüntaks on:

seq(begin, last, by = x)arguments:- begin: First number of the sequence- last: Last number of the sequence- by= x: The step. For instance, if x is 2, the code adds 2 to `begin-1` until it reaches `last`

Näiteks kui soovite luua sammuga 3 vahemiku 0 kuni 12, on teil neli numbrit, 0 4 8 12

seq(0, 12,4)

Väljund:

## [1] 0 4 8 12 

Saate juhtida x-telje ja y-telje skaalat allpool

my_graph +scale_x_continuous(breaks = seq(1, 3.6, by = 0.2)) +scale_y_continuous(breaks = seq(1, 1.6, by = 0.1)) +labs(x = "Drat definition",y = "Mile per hours",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")

Koodi selgitus

  • Funktsioon scale_y_continuous () juhib y-telge
  • Funktsioon scale_x_continuous () juhib x-telge .
  • Parameetrivahemikud kontrollivad telje jaotust. Numbrijärjestuse saate käsitsi lisada või funktsiooni seq () kasutada:
    • järgnevus (1, 3.6, by = 0.2): looge 3 sammuga kuus numbrit 2,4 kuni 3,4
    • jada (1, 1,6, by = 0,1): looge seitsme numbri vahemik 1 kuni 1,6 sammuga 1

Väljund:

Teema

Lõpuks võimaldab R meil kohandada erinevate teemadega süžeed. Raamatukogu ggplot2 sisaldab kaheksat teemat:

  • theme_bw ()
  • teema_valgus ()
  • teema_klass ()
  • theme_linedraw ()
  • teema_tume ()
  • teema_minimaalne ()
  • teema_hall ()
  • theme_void ()
my_graph +theme_dark() +labs(x = "Drat definition, in log",y = "Mile per hours, in log",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")

Väljund:

Salvesta krundid

Pärast kõiki neid samme on aeg oma graafik salvestada ja jagada. Lisate ggsave ('FILI NIMI') kohe pärast graafiku koostamist ja see salvestatakse kõvakettale.

Graafik salvestatakse töökataloogi. Töökataloogi kontrollimiseks võite käivitada selle koodi:

directory <-getwd()directory 

Koostame teie fantastilise graafiku, salvestame selle ja kontrollime asukohta

my_graph +theme_dark() +labs(x = "Drat definition, in log",y = "Mile per hours, in log",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")

Väljund:

ggsave("my_fantastic_plot.png.webp")

Väljund:

## Saving 5 x 4 in image

Märkus . Ainult pedagoogilistel eesmärkidel lõime teile kataloogikausta avamiseks funktsiooni nimega open_folder (). Peate lihtsalt käivitama alloleva koodi ja nägema, kuhu pilt on salvestatud. Peaksite nägema failinimesid my_fantastic_plot.png.webp.

# Run this code to create thefunctionopen_folder <- function(dir) {if (.Platform['OS.type'] == "windows") {shell.exec(dir)} else {system(paste(Sys.getenv("R_BROWSER"), dir))}}# Call thefunction to open the folder open_folder(directory)

Kokkuvõte

Hajusdiagrammi loomiseks kasutatavad argumendid võite kokku võtta allolevas tabelis:

Eesmärk

Kood

Põhiline hajutusskeem

ggplot(df, aes(x = x1, y = y)) + geom_point()

Hajus graafik koos värvigrupiga

ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) + stat_smooth(method = "lm")

Lisage sobivad väärtused

ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1))

Lisa pealkiri

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(title = paste("Hello Guru99"))

Lisage alapealkiri

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(subtitle = paste("Hello Guru99"))

Nimetage x ümber

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(x = "X1")

Nimeta y ümber

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(y = "y1")

Kontrollige skaalat

ggplot(df, aes(x = x1, y = y)) + geom_point() + scale_y_continuous(breaks = seq(10, 35, by = 10)) + scale_x_continuous(breaks = seq(2, 5, by = 1)

Looge logid

ggplot(df, aes(x =log(x1), y = log(y))) + geom_point()

Teema

ggplot(df, aes(x = x1, y = y)) + geom_point() + theme_classic()

Salvesta

ggsave("my_fantastic_plot.png.webp")