Raztresenje ploskve v R z uporabo ggplot2 (z primerom)

Kazalo:

Anonim

Grafi so tretji del procesa analize podatkov. Prvi del govori o pridobivanju podatkov , drugi del pa o čiščenju in manipulaciji podatkov . Končno bo znanstvenik podatkov morda moral svoje rezultate sporočiti grafično .

Delo znanstvenika podatkov je mogoče pregledati na naslednji sliki

  • Prva naloga podatkovnega znanstvenika je opredeliti raziskovalno vprašanje. To raziskovalno vprašanje je odvisno od ciljev in ciljev projekta.
  • Po tem je ena najvidnejših nalog inženiring funkcij. Podatkovni znanstvenik mora podatke zbirati, manipulirati in čistiti
  • Ko je ta korak končan, lahko začne raziskovati nabor podatkov. Včasih je treba zaradi novega odkritja izpopolniti in spremeniti prvotno hipotezo.

  • Ko je opravljena razlagalna analiza, mora podatkovni znanstvenik upoštevati sposobnost bralca, da razume osnovne koncepte in modele .
  • Njegove rezultate je treba predstaviti v obliki, ki jo lahko razumejo vse zainteresirane strani. Ena najboljših metod za sporočanje rezultatov je graf .
  • Grafi so neverjetno orodje za poenostavitev kompleksne analize.

V tej vadnici boste izvedeli-

  • paket ggplot2
  • Graf raztrosa
  • Spremeni os
  • Razpršena ploskev z vgrajenimi vrednostmi
  • Na graf dodajte informacije
  • Preimenujte os x in os y
  • Nadzirajte tehtnico
  • Tema
  • Shrani parcele

paket ggplot2

Ta del vadnice se osredotoča na to, kako narediti grafe / grafikone z R.

V tej vadnici boste uporabili paket ggplot2. Ta paket temelji na dosledni osnovi knjige Gramatika grafike, ki jo je napisal Wilkinson, 2005. ggplot2 je zelo prilagodljiv, vključuje veliko tem in specifikacijo ploskve na visoki ravni abstrakcije. Z ggplot2 ne morete risati tridimenzionalne grafike in ustvarjati interaktivne grafike.

V ggplot2 je graf sestavljen iz naslednjih argumentov:

  • podatkov
  • estetsko kartiranje
  • geometrijski objekt
  • statistične transformacije
  • luske
  • koordinatni sistem
  • nastavitve položaja
  • fasetiranje

V vadnici boste izvedeli, kako nadzirati te argumente.

Osnovna sintaksa ggplot2 je:

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()`

Graf raztrosa

Poglejmo, kako ggplot deluje z naborom podatkov mtcars. Začnete z risanjem razpršenega diagrama spremenljivk mpg in drat.

Osnovna razpršena ploskev

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

Razlaga kode

  • Nabor podatkov mtcars najprej posredujete ggplot.
  • Znotraj argumenta aes () dodate os x in os y.
  • Znak + pomeni, da želite, da R še naprej bere kodo. Kodo naredi bolj berljivo tako, da jo zlomi.
  • Za geometrijski objekt uporabite geom_point ().

Izhod:

Razpršena ploskev s skupinami

Včasih je zanimivo ločiti vrednosti po skupini podatkov (tj. Podatki na ravni faktorja).

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

Razlaga kode

  • Aes () znotraj geom_point () nadzoruje barvo skupine. Skupina mora biti faktor faktorja. Tako spremenljivo prestavo pretvorite v faktor.
  • Skupaj imate kodo aes (barva = faktor (orodje)), ki spreminja barvo pik.

Izhod:

Spremeni os

Prilagoditev podatkov je velik del dela znanstvenika. V redkih primerih so podatki v lepi obliki zvonca. Ena od rešitev za manj občutljivost podatkov na izstopajoče meritve je njihovo povečanje.

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

Razlaga kode

  • Spremenljivki x in y pretvorite v log () neposredno znotraj preslikave aes ().

Upoštevajte, da je mogoče uporabiti katero koli drugo preobrazbo, na primer standardizacijo ali normalizacijo.

Izhod:

Razpršena ploskev z vgrajenimi vrednostmi

Grafu lahko dodate še eno raven informacij. Izrišete lahko vgrajeno vrednost linearne regresije.

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

Razlaga kode

  • graf: svoj graf shranite v spremenljivi graf. Koristno je za nadaljnjo uporabo ali izogibanje preveč zapletenim vrsticam kod
  • Argument stat_smooth () nadzoruje metodo glajenja
  • method = "lm": Linearna regresija
  • col = "# C42126": Koda za rdečo barvo črte
  • se = FALSE: Ne prikazuj standardne napake
  • velikost = 1: velikost črte je 1

Izhod:

Na voljo so tudi druge metode glajenja

  • glm
  • gam
  • les: privzeta vrednost
  • platišče

Na graf dodajte informacije

Zaenkrat v grafe nismo dodali informacij. Grafi morajo biti informativni. Bralec bi moral zgodbo za analizo podatkov videti samo tako, da si ogleda graf, ne da bi se skliceval na dodatno dokumentacijo. Zato grafi potrebujejo dobre oznake. Oznake lahko dodate s funkcijo labs ().

Osnovna sintaksa za lab () je:

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")

Dodajte naslov

Eden od obveznih podatkov, ki ga je treba dodati, je očitno naslov.

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

Razlaga kode

  • my_graph: Uporabite graf, ki ste ga shranili. Izogiba se prepisovanju vseh kod vsakič, ko na graf dodate nove podatke.
  • Naslov zavijete v laboratorij ().
  • Koda za rdečo barvo črte
  • se = FALSE: Ne prikazuj standardne napake
  • velikost = 1: velikost črte je 1

Izhod:

Dodajte naslov z dinamičnim imenom

Dinamičen naslov je koristen, če v naslov dodate natančnejše informacije.

Funkcijo paste () lahko uporabite za tiskanje statičnega in dinamičnega besedila. Osnovna sintaksa paste () je:

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

Primer:

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

Izhod:

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

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

Izhod:

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

Na naš graf lahko dodate dinamično ime, in sicer povprečje mpg.

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

Razlaga kode

  • Povprečje mpg ustvarite s povprečjem (mtcars $ mpg), shranjenim v spremenljivki mean_mpg
  • Uporabite paste () z mean_mpg, da ustvarite dinamični naslov, ki vrne srednjo vrednost mpg

Izhod:

Dodajte podnapis

Dve dodatni podrobnosti lahko vaš graf naredijo bolj nazorne. Govorite o podnaslovu in napisu. Podnaslov je tik pod naslovom. Z napisom lahko obvestite, kdo je opravil izračun, in vir podatkov.

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

Razlaga kode

  • V laboratoriju () ste dodali:
    • title = "Razmerje med miljo na uro in dratom": dodajte naslov
    • subtitle = "Razmerje razčlenjeno glede na razred orodja": dodajte podnaslov
    • caption = "Avtorski izračun: dodajte napis
    • Vsako novo informacijo ločite z vejico,,
  • Upoštevajte, da lomite vrstice kode. Ni obvezno in pomaga le lažje branje kode

Izhod:

Preimenujte os x in os y

Sami spremenljivke v naboru podatkov morda niso vedno izrecne ali po dogovoru uporabljajo _, kadar je več besed (tj. GDP_CAP). Ne želite, da se takšno ime pojavi na vašem grafu. Pomembno je spremeniti ime ali dodati več podrobnosti, kot so enote.

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")

Razlaga kode

  • V laboratoriju () ste dodali:
    • x = "Drat definicija": spremenite ime osi x
    • y = "Mile na ure": Spremenite ime osi y

Izhod:

Nadzirajte tehtnico

Lahko nadzirate lestvico osi.

Funkcija seq () je priročna, ko morate ustvariti zaporedje številk. Osnovna sintaksa je:

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`

Če želite na primer ustvariti obseg od 0 do 12 s korakom 3, boste imeli štiri številke, 0 4 8 12

seq(0, 12,4)

Izhod:

## [1] 0 4 8 12 

Spodaj lahko nadzorujete lestvico osi x in osi y

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")

Razlaga kode

  • Funkcija scale_y_continuous () nadzoruje os y
  • Funkcija scale_x_continuous () nadzoruje os x .
  • Parameter prelomi nadzoruje deljenje osi. Zaporedje števil lahko dodate ročno ali uporabite funkcijo seq ():
    • seq (1, 3,6, za = 0,2): Ustvari šest številk od 2,4 do 3,4 s korakom 3
    • seq (1, 1,6, z = 0,1): Ustvari sedem številk od 1 do 1,6 s korakom 1

Izhod:

Tema

Na koncu nam R omogoča prilagajanje zapleta z različnimi temami. Knjižnica ggplot2 vključuje osem tem:

  • theme_bw ()
  • theme_light ()
  • theme_classis ()
  • theme_linedraw ()
  • tema_temne ()
  • tema_minimalna ()
  • theme_gray ()
  • 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")

Izhod:

Shrani parcele

Po vseh teh korakih je čas, da svoj graf shranite in delite z drugimi. Dodate ggsave ('IME DATOTEKE') takoj, ko narišete graf in bo shranjen na trdem disku.

Graf se shrani v delovni imenik. Če želite preveriti delovni imenik, lahko zaženete to kodo:

directory <-getwd()directory 

Načrtujmo vaš fantastični graf, ga shranimo in preverimo lokacijo

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")

Izhod:

ggsave("my_fantastic_plot.png.webp")

Izhod:

## Saving 5 x 4 in image

Opomba : Samo za pedagoške namene smo ustvarili funkcijo z imenom open_folder (), da vam odpre mapo z imeniki. Samo zaženite spodnjo kodo in si oglejte, kje je slika shranjena. Videti bi morali imena datotek 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)

Povzetek

V spodnji tabeli lahko strnete argumente za ustvarjanje razpršene ploskve:

Cilj

Koda

Osnovna razpršena ploskev

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

Razpršena ploskev z barvno skupino

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

Dodajte vgrajene vrednosti

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

Dodaj naslov

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

Dodaj podnapis

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

Preimenuj x

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

Preimenuj y

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

Nadzirajte tehtnico

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)

Ustvari dnevnike

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

Tema

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

Shrani

ggsave("my_fantastic_plot.png.webp")