Sklaidos diagrama R, naudojant ggplot2 (su pavyzdžiu)

Grafikai yra trečioji duomenų analizės proceso dalis. Pirmoji dalis yra apie duomenų išskyrimą , antroji - apie duomenų valymą ir manipuliavimą . Pagaliau duomenų mokslininkui gali tekti savo rezultatus paviešinti grafiškai .

Duomenų mokslininko darbą galima peržiūrėti šiame paveikslėlyje

  • Pirmoji duomenų mokslininko užduotis yra apibrėžti tyrimo klausimą. Šis tyrimo klausimas priklauso nuo projekto tikslų ir uždavinių.
  • Po to viena ryškiausių užduočių yra funkcijų inžinerija. Duomenų mokslininkas turi rinkti duomenis, jais manipuliuoti ir juos išvalyti
  • Baigęs šį veiksmą, jis gali pradėti tyrinėti duomenų rinkinį. Kartais dėl naujo atradimo būtina patikslinti ir pakeisti pradinę hipotezę.

  • Atlikus aiškinamąją analizę, duomenų mokslininkas turi atsižvelgti į skaitytojo gebėjimą suprasti pagrindines sąvokas ir modelius .
  • Jo rezultatai turėtų būti pateikiami visiems suinteresuotiems asmenims suprantama forma. Vienas iš geriausių rezultatų perdavimo būdų yra grafikas .
  • Grafikai yra neįtikėtinas įrankis supaprastinti sudėtingą analizę.

Šioje pamokoje sužinosite

  • „ggplot2“ paketas
  • Scatterplot
  • Keisti ašį
  • Sklaidos diagrama su pritaikytomis vertėmis
  • Pridėkite informacijos prie diagramos
  • Pervardykite x ir y ašis
  • Valdykite svarstykles
  • Tema
  • Išsaugoti sklypus

„ggplot2“ paketas

Šioje mokymo programos dalyje daugiausia dėmesio skiriama grafikų / diagramų sudarymui su R.

Šioje pamokoje ketinate naudoti „ggplot2“ paketą. Šis paketas sukurtas remiantis nuoseklia knygos „Gramatika grafika“, parašytos Wilkinsono, 2005 m. Pagrindu. Naudodami „ggplot2“ negalite braižyti 3 dimensijų grafikos ir kurti interaktyvios grafikos.

„Ggplot2“ schemą sudaro šie argumentai:

  • duomenis
  • estetinis žemėlapis
  • geometrinis objektas
  • statistinės transformacijos
  • svarstyklės
  • koordinačių sistema
  • padėties koregavimas
  • briaunotas

Kaip valdyti tuos argumentus, sužinosite pamokoje.

Pagrindinė „ggplot2“ sintaksė yra:

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

Scatterplot

Pažiūrėkime, kaip „ggplot“ veikia su „mtcars“ duomenų rinkiniu. Pradėkite braižydami mpg kintamojo ir drat kintamojo sklaidos diagramą.

Pagrindinis sklaidos grafikas

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

Kodo paaiškinimas

  • Pirmiausia duomenų rinkinį „mtcars“ perduodate „ggplot“.
  • Argumento „aes“ () viduje pridedate x ašį ir y ašį.
  • „+“ Ženklas reiškia, kad norite, kad R toliau skaitytų kodą. Tai daro kodą lengviau įskaitomą jį sulaužius.
  • Geometriniam objektui naudokite geom_point ().

Išvestis:

Sklaidos siužetas su grupėmis

Kartais gali būti įdomu atskirti vertes pagal duomenų grupę (ty faktoriaus lygio duomenis).

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

Kodo paaiškinimas

  • „Gees_point“ () viduje esantys „aes“ () valdo grupės spalvą. Grupė turėtų būti veiksnio kintamasis. Taigi, jūs konvertuojate kintamą pavarą į koeficientą.
  • Iš viso turite kodo aes (spalva = faktorius (pavara)), kurie keičia taškų spalvą.

Išvestis:

Keisti ašį

Duomenų perskaičiavimas yra didelė duomenų mokslininko darbo dalis. Retais atvejais duomenys yra gražios varpo formos. Vienas iš sprendimų, kaip padaryti jūsų duomenis mažiau jautrius pašaliniams rodikliams, yra jų pakeitimas.

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

Kodo paaiškinimas

  • X ir y kintamuosius transformuojate log () tiesiai į aes () žemėlapį.

Atkreipkite dėmesį, kad gali būti taikoma bet kuri kita transformacija, tokia kaip standartizavimas ar normalizavimas.

Išvestis:

Sklaidos diagrama su pritaikytomis vertėmis

Prie diagramos galite pridėti kitą informacijos lygį. Galite nubrėžti pritaikytą tiesinės regresijos vertę.

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

Kodo paaiškinimas

  • diagrama: Jūs saugote savo diagramą kintamajame. Tai naudinga tolesniam naudojimui arba venkite pernelyg sudėtingos kodų eilutės
  • Argumentas stat_smooth () valdo išlyginimo metodą
  • method = "lm": tiesinė regresija
  • col = "# C42126": raudonos linijos spalvos kodas
  • se = NETIESA: Nerodykite standartinės klaidos
  • dydis = 1: linijos dydis yra 1

Išvestis:

Atkreipkite dėmesį, kad yra kitų lyginimo būdų

  • glm
  • gam
  • löess: numatytoji vertė
  • ratlankis

Pridėkite informacijos prie diagramos

Iki šiol grafikuose nepridėjome informacijos. Grafikai turi būti informatyvūs. Skaitytojas turėtų pamatyti duomenų analizės istoriją, tiesiog žiūrėdamas į diagramą, nenurodydamas papildomos dokumentacijos. Taigi grafikams reikia gerų etikečių. Galite pridėti etiketes su „labs“ () funkcija.

Pagrindinė laboratorijos () sintaksė yra:

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

Pridėti pavadinimą

Viena privaloma papildoma informacija yra pavadinimas.

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

Kodo paaiškinimas

  • my_graph: Jūs naudojate išsaugotą grafiką. Vengiama perrašyti visus kodus kiekvieną kartą, kai prie diagramos pridedate naujos informacijos.
  • Jūs įvyniokite pavadinimą laboratorijoje ().
  • Raudonos linijos spalvos kodas
  • se = NETIESA: Nerodykite standartinės klaidos
  • dydis = 1: linijos dydis yra 1

Išvestis:

Pridėkite pavadinimą su dinaminiu pavadinimu

Dinamiškas pavadinimas yra naudingas norint pridėti tikslesnę informaciją pavadinime.

Galite naudoti pastos () funkciją, norėdami atspausdinti statinį ir dinaminį tekstą. Pagrindinė pastos () sintaksė yra:

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

Pavyzdys:

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

Išvestis:

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

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

Išvestis:

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

Prie mūsų diagramos galite pridėti dinaminį pavadinimą, būtent mpg vidurkį.

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

Kodo paaiškinimas

  • Jūs sukuriate mpg vidurkį naudodami vidurkį (mtcars $ mpg), saugomą kintamajame mean_mpg
  • Norėdami sukurti dinaminį pavadinimą, pateikiantį vidutinę mpg vertę, naudojate pastą () su mean_mpg

Išvestis:

Pridėti paantraštę

Dvi papildomos detalės gali padaryti jūsų diagramą aiškesnę. Jūs kalbate apie paantraštę ir antraštę. Paantraštė eina tiesiai po pavadinimu. Antraštė gali suteikti informacijos apie tai, kas atliko skaičiavimą, ir duomenų šaltinį.

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

Kodo paaiškinimas

  • Laboratorijos viduje () pridėjote:
    • title = "Mylės per valandą ir drato santykis": pridėkite pavadinimą
    • subtitle = "Santykiai suskirstyti pagal pavarų klases": pridėti paantraštę
    • caption = "Autorių skaičiavimas: pridėkite antraštę
    • Kiekvieną naują informaciją atskiriate kableliu,,
  • Atminkite, kad sulaužote kodo eilutes. Tai nėra privaloma, ir tai tik padeda lengviau perskaityti kodą

Išvestis:

Pervardykite x ir y ašis

Pats kintamasis duomenų rinkinyje ne visada gali būti aiškus arba pagal susitarimą naudoti _, kai yra keli žodžiai (ty GDP_CAP). Nenorite, kad toks vardas būtų jūsų diagramoje. Svarbu pakeisti pavadinimą arba pridėti daugiau informacijos, pvz., Vienetus.

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

Kodo paaiškinimas

  • Laboratorijos viduje () pridėjote:
    • x = "Drato apibrėžimas": pakeiskite x ašies pavadinimą
    • y = "mylia per valandas": pakeiskite y ašies pavadinimą

Išvestis:

Valdykite svarstykles

Galite valdyti ašies mastą.

Funkcija seq () yra patogi, kai reikia sukurti skaičių seką. Pagrindinė sintaksė yra:

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`

Pvz., Jei norite sukurti diapazoną nuo 0 iki 12 atlikdami 3 žingsnį, turėsite keturis skaičius: 0 4 8 12

seq(0, 12,4)

Išvestis:

## [1] 0 4 8 12 

Galite valdyti x ir y ašių mastelį taip, kaip nurodyta toliau

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

Kodo paaiškinimas

  • Funkcija scale_y_continuous () valdo y ašį
  • Funkcija scale_x_continuous () valdo x ašį .
  • Parametrų pertraukos valdo ašies padalijimą. Galite rankiniu būdu pridėti skaičiaus seką arba naudoti seq () funkciją:
    • seka (1, 3,6, pagal = 0,2): sukurkite šešis skaičius nuo 2,4 iki 3,4 atlikdami 3 žingsnius
    • seka (1, 1,6, pagal = 0,1): sukurkite septynis skaičius nuo 1 iki 1,6, atlikdami 1 žingsnį

Išvestis:

Tema

Galiausiai, R leidžia mums pritaikyti skirtingų temų siužetą. Bibliotekoje „ggplot2“ yra aštuonios temos:

  • theme_bw ()
  • theme_light ()
  • theme_classis ()
  • theme_linedraw ()
  • theme_dark ()
  • tema_minimali ()
  • tema_pilkai ()
  • 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")

Išvestis:

Išsaugoti sklypus

Atlikę visus šiuos veiksmus, atėjo laikas išsaugoti ir bendrinti diagramą. Pridėsite „ggsave“ („Failo PAVADINIMAS“) iškart po to, kai nubraižysite diagramą, ir ji bus saugoma standžiajame diske.

Diagrama išsaugoma darbo kataloge. Norėdami patikrinti darbo katalogą, galite paleisti šį kodą:

directory <-getwd()directory 

Nubrėžkime jūsų fantastišką grafiką, išsaugokite jį ir patikrinkite vietą

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

Išvestis:

ggsave("my_fantastic_plot.png.webp")

Išvestis:

## Saving 5 x 4 in image

Pastaba : Tik pedagoginiams tikslams sukūrėme funkciją, pavadintą open_folder (), kad atidarytumėte katalogų aplanką jums. Jums tiesiog reikia paleisti žemiau esantį kodą ir pamatyti, kur saugomas paveikslėlis. Turėtumėte pamatyti failų pavadinimus 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)

Santrauka

Žemiau esančioje lentelėje galite apibendrinti argumentus, kad sukurtumėte sklaidos diagramą:

Tikslas

Kodas

Pagrindinis sklaidos grafikas

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

Sklaidos diagrama su spalvų grupe

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

Pridėkite pritaikytas vertes

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

Prideti pavadinima

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

Pridėti paantraštę

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

Pervardyti x

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

Pervardyti y

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

Valdykite mastelį

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)

Kurkite žurnalus

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

Tema

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

Sutaupyti

ggsave("my_fantastic_plot.png.webp")

Įdomios straipsniai...