Juostinė diagrama ir Histograma R (su pavyzdžiu)

Juostinė diagrama yra puikus būdas parodyti kategorinius kintamuosius x ašyje. Šio tipo grafikai žymi du y ašies aspektus.

  1. Pirmasis skaičiuoja įvykių tarp grupių skaičių.
  2. Antrasis rodo y ašies kintamojo suvestinę statistiką (min., Maks., Vidurkis ir pan.).

Naudosite „mtcars“ duomenų rinkinį su šiais kintamaisiais:

  • cilindras: automobilio cilindro numeris. Skaitmeninis kintamasis
  • am: perdavimo tipas. 0 automatiniam ir 1 rankiniam. Skaitmeninis kintamasis
  • mpg: mylios už galoną. Skaitmeninis kintamasis

Šioje pamokoje sužinosite

  • Kaip sukurti juostinę diagramą
  • Pakeiskite juostų spalvą
  • Pakeiskite intensyvumą
  • Spalva pagal grupes
  • Pridėkite grupę juostose
  • Juostinė diagrama procentais
  • Šoninės juostos
  • Histograma

Kaip sukurti juostinę diagramą

Norėdami sukurti grafiką R, galite naudoti biblioteką „ggplot“, kuri sukuria paruoštus paskelbti grafikus. Pagrindinė šios bibliotekos 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 objects are:- Point: `geom_point()`- Bar: `geom_bar()`- Line: `geom_line()`- Histogram: `geom_histogram()`

Šioje pamokoje jus domina geometrinis objektas geom_bar (), sukuriantis juostų diagramą.

Juostinė diagrama: skaičius

Pirmajame diagramoje rodomas cilindro su geom_bar () dažnis. Žemiau pateiktas kodas yra pati pagrindinė sintaksė.

library(ggplot2)# Most basic bar chartggplot(mtcars, aes(x = factor(cyl))) +geom_bar()

Kodo paaiškinimas

  • Duomenų rinkinį „mtcars“ perduodate „ggplot“.
  • Argumento „aes“ () viduje pridedate x ašį kaip veiksnio kintamąjį (cilindrą)
  • „+“ Ženklas reiškia, kad norite, kad R toliau skaitytų kodą. Tai daro kodą lengviau įskaitomą jį sulaužius.
  • Geometriniam objektui naudokite geom_bar ().

Išvestis:

Pastaba : būtinai konvertuokite kintamuosius į koeficientą, kitaip R kintamuosius traktuoja kaip skaitmeninius. Žr. Toliau pateiktą pavyzdį.

Tinkinkite diagramą

Norėdami pritaikyti grafiką, galima pateikti keturis argumentus:

- `stat`: Control the type of formatting. By default, `bin` to plot a count in the y-axis. For continuous value, pass `stat = "identity"`- `alpha`: Control density of the color- `fill`: Change the color of the bar- `size`: Control the size the bar

Pakeiskite juostų spalvą

Galite pakeisti juostų spalvą. Atkreipkite dėmesį, kad juostų spalvos yra visos panašios.

# Change the color of the barsggplot(mtcars, aes(x = factor(cyl))) +geom_bar(fill = "coral") +theme_classic()

Kodo paaiškinimas

  • Juostų spalvas kontroliuoja aes (), atvaizduojančios geometrinį objektą (ty ne ggplot ()). Spalvą galite pakeisti užpildydami argumentus. Čia jūs pasirenkate koralų spalvą.

Išvestis:

Galite naudoti šį kodą:

grDevices::colors() 

norėdami pamatyti visas R spalvos spalvas. Yra apie 650 spalvų.

Pakeiskite intensyvumą

Galite padidinti arba sumažinti juostų spalvos intensyvumą

# Change intensityggplot(mtcars,aes(factor(cyl))) +geom_bar(fill = "coral",alpha = 0.5) +theme_classic()

Kodo paaiškinimas

  • Norėdami padidinti / sumažinti juostos intensyvumą, galite pakeisti alfa reikšmę. Didelė alfa padidina intensyvumą, o maža alfa sumažina intensyvumą. alfa svyruoja nuo 0 iki 1. Jei 1, tada spalva yra tokia pati kaip paletės. Jei 0, spalva yra balta. Jūs pasirenkate alfa = 0,1.

Išvestis:

Spalva pagal grupes

Galite pakeisti juostų spalvas, kiekvienai grupei nurodydami po vieną skirtingą spalvą. Pavyzdžiui, cilindras kintamasis turi tris lygius, tada juostinę diagramą galite brėžti trimis spalvomis.

# Color by groupggplot(mtcars, aes(factor(cyl),fill = factor(cyl))) +geom_bar()

Kodo paaiškinimas

  • Argumento užpildymas aes () viduje leidžia pakeisti juostos spalvą. Spalvą keičiate nustatydami užpildo = x ašies kintamąjį. Jūsų pavyzdyje x ašies kintamasis yra cyl; užpildyti = koeficientas (cilindrai)

Išvestis:

Pridėkite grupę juostose

Galite dar padalyti y ašį pagal kitą veiksnio lygį. Pavyzdžiui, galite suskaičiuoti automatinės ir rankinės pavarų dėžės skaičių pagal cilindro tipą.

Jūs elgsitės taip:

  • 1 žingsnis: Sukurkite duomenų rėmą naudodami „mtcars“ duomenų rinkinį
  • 2 žingsnis: Pažymėkite kintamojo am kintiklį su automatine pavarų dėže ir žmogumi rankine pavarų dėže. Konvertuokite am ir cyl kaip koeficientą, kad nereikėtų naudoti koeficiento () funkcijoje ggplot ().
  • 3 žingsnis: Nubraižykite juostinę diagramą, kad suskaičiuotumėte perdavimo skaičių pagal cilindrą
library(dplyr)# Step 1data <- mtcars % > %#Step 2mutate(am = factor(am, labels = c("auto", "man")),cyl = factor(cyl))

Turite parengtą duomenų rinkinį, galite suskaičiuoti grafiką;

# 3 žingsnis

ggplot(data, aes(x = cyl, fill = am)) +geom_bar() +theme_classic()

Kodo paaiškinimas

  • „Ggpplot“ () yra duomenų rinkinio duomenys ir „aes“ ().
  • Į aes () įtraukiate kintamąją x ašį ir kintamąjį, kuris reikalingas juostai užpildyti (ty am)
  • geom_bar (): sukurkite juostinę diagramą

Išvestis:

Atvaizdavimas užpildys juostą dviem spalvomis, po vieną kiekvienam lygiui. Rinktis kitus veiksnių kintamuosius duomenų rinkinyje nėra lengva.

Juostinė diagrama procentais

Galite vaizduoti juostą procentais, o ne neapdorotą skaičių.

# Juostinė diagrama procentais

ggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = "fill") +theme_classic()

Kodo paaiškinimas

  • Norėdami sukurti grafiką su procentine y ašimi, naudokite argumentą „geom_bar ()“ = = užpildyti.

Išvestis:

Šoninės juostos

Juostinę diagramą lengva brėžti kartu su grupės kintamuoju.

# Bar chart side by sideggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = position_dodge()) +theme_classic()

Kodo paaiškinimas

  • position = position_dodge (): aiškiai nurodoma, kaip išdėstyti juostas

Išvestis:

Histograma

Antroje juostinių diagramų mokymo programos dalyje galite pavaizduoti kintamųjų grupę su y ašies vertėmis.

Jūsų tikslas yra sukurti grafiką su vidutine mylia vienam galonui kiekvienam cilindro tipui. Norėdami piešti informacinį grafiką, atlikite šiuos veiksmus:

  • 1 žingsnis: sukurkite naują kintamąjį, kurio cilindro vidurkis yra viena mylia už galoną
  • 2 žingsnis: sukurkite pagrindinę histogramą
  • 3 žingsnis: pakeiskite orientaciją
  • 4 žingsnis: pakeiskite spalvą
  • 5 žingsnis: Pakeiskite dydį
  • 6 žingsnis: pridėkite etiketes prie diagramos

1 žingsnis) Sukurkite naują kintamąjį

Sukuriate duomenų rėmelį, pavadintą data_histogram, kuris paprasčiausiai pateikia vidutinius mylių už galoną pagal automobilio cilindrų skaičių. Šį naują kintamąjį vadinate mean_mpg, o vidurkį suapvalinate dviem skaičiais po kablelio.

# 1 žingsnis

data_histogram <- mtcars % > %mutate(cyl = factor(cyl)) % > %group_by(cyl) % > %summarize(mean_mpg = round(mean(mpg), 2))

2 žingsnis) Sukurkite pagrindinę histogramą

Galite susikurti histogramą. Jis nėra pasirengęs bendrauti, kad būtų pristatytas klientui, tačiau suteikia mums intuiciją apie tendenciją.

ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity")

Kodo paaiškinimas

  • Aes () dabar turi du kintamuosius. Kintamasis cilindras reiškia x ašį, o vidutinis_mpg yra y ašis.
  • Norėdami perduoti y ašies kintamąjį skaitmenine verte, turite perduoti argumentą stat = "identity". geom_bar naudoja stat = "bin" kaip numatytąją vertę.

Išvestis:

3 žingsnis) Pakeiskite orientaciją

Grafiko orientaciją pakeisite iš vertikalios į horizontalią.

ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity") +coord_flip()

Kodo paaiškinimas

  • Grafiko orientaciją galite valdyti naudodami „coord_flip“ ().

Išvestis:

4 žingsnis) Pakeiskite spalvą

Juostų spalvas galite atskirti pagal x ašies kintamojo faktoriaus lygį.

ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity") +coord_flip() +theme_classic()

Kodo paaiškinimas

  • Grafiką galite suskirstyti pagal grupes naudodami fill = cyl atvaizdavimą. R automatiškai rūpinasi spalvomis, atsižvelgiant į cilindro kintamojo lygius

Išvestis:

5 žingsnis) Pakeiskite dydį

Kad diagrama atrodytų gražesnė, sumažinate juostos plotį.

graph <- ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity",width = 0.5) +coord_flip() +theme_classic()

Kodo paaiškinimas

  • Geom_bar () viduje esantis argumentas „plotis“ valdo juostos dydį. Didesnė vertė padidina plotį.
  • Atkreipkite dėmesį, kad grafiką saugote kintamųjų diagramoje. Taip darote, nes kitas žingsnis nepakeis kintamojo grafiko kodo. Tai pagerina kodo įskaitomumą.

Išvestis:

6 žingsnis) Pridėkite etikečių prie diagramos

Paskutinis žingsnis - kintamojo „mean_mpg“ vertės pridėjimas etiketėje.

graph +geom_text(aes(label = mean_mpg),hjust = 1.5,color = "white",size = 3) +theme_classic()

Kodo paaiškinimas

  • Funkcija geom_text () yra naudinga teksto estetikai valdyti.
    • label =: Įtraukite etiketę juostų viduje
    • mean_mpg: Etiketėje naudokite kintamąjį mean_mpg
  • „hjust“ kontroliuoja etiketės vietą. Uždarytos iki 1 vertės rodo etiketę juostos viršuje, o dėl didesnių reikšmių etiketė nukreipiama į apačią. Jei grafiko orientacija yra vertikali, pakeiskite „hjust“ į „just“.
  • color = "white": pakeiskite teksto spalvą. Čia jūs naudojate baltą spalvą.
  • size = 3: nustatykite teksto dydį.

Išvestis:

Santrauka

Juostinė diagrama yra naudinga, kai x ašis yra kategorinis kintamasis. Y ašis gali būti skaičiavimo arba suvestinės statistika. Žemiau esančioje lentelėje apibendrinama, kaip valdyti juostinę diagramą naudojant „ggplot2“:

Tikslas

kodas

Grafas

ggplot(df, eas(x= factor(x1)) + geom_bar()

Skaičiuokite su skirtingos spalvos užpildu

ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar()

Skaičiuokite grupėmis, sukrautas

ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge())

Skaičiuokite grupėmis, vienas šalia kito

ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar()

Skaičius su grupėmis, sukrautas%

ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge())

Vertybės

ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity")

Įdomios straipsniai...