Pylväskaavio ja histogrammi R:ssä (esimerkillä)

Pylväskaavio on loistava tapa näyttää kategorialliset muuttujat x-akselilla. Tämän tyyppinen kaavio kuvaa kahta aspektia y-akselilla.

  1. Ensimmäinen laskee esiintymien lukumäärän ryhmien välillä.
  2. Toinen näyttää yhteenvetotilaston (min, max, keskiarvo ja niin edelleen) y-akselin muuttujasta.

Käytät mtcars-tietosarjaa, jossa on seuraavat muuttujat:

  • cyl: Auton sylinterin numero. Numeerinen muuttuja
  • am: Lähetyksen tyyppi. 0 automaattiselle ja 1 manuaaliselle. Numeerinen muuttuja
  • mpg: mailia gallonaa kohden. Numeerinen muuttuja

Pylväskaavion luominen

Luodaksesi kaavion sisään R, voit käyttää kirjastoa ggplot, joka luo julkaisuvalmiita kaavioita. Tämän kirjaston perussyntaksi on:

ggplot(data, mapping = aes()) +
geometric object 

arguments: 
data: dataset used to plot the graph 
mapping: Control the x and y-axis 
geometric 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()` 

Tässä opetusohjelmassa olet kiinnostunut geometrisestä objektista geom_bar(), joka luo pylväskaavion.

Pylväskaavio: laske

Ensimmäinen kaaviosi näyttää sylinterin taajuuden geom_bar(). Alla oleva koodi on yksinkertaisin syntaksi.

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

Koodin selitys

  • Välität tietojoukon mtcars ggplotille.
  • Aes()-argumentin sisällä lisäät x-akselin tekijämuuttujaksi (cyl)
  • +-merkki tarkoittaa, että haluat R:n jatkavan koodin lukemista. Se tekee koodista luettavamman rikkomalla sen.
  • Käytä geom_bar() geometriselle objektille.

lähtö:

Pylväskaavio: laske

Huomautuksia: varmista, että muunnat muuttujat kertoimeksi, muuten R käsittelee muuttujia numeerisina. Katso alla oleva esimerkki.

Pylväskaavio: laske

Mukauta kaaviota

Kaavion mukauttamiseen voidaan antaa neljä argumenttia:

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

Muuta palkkien väriä

Voit muuttaa palkkien väriä. Huomaa, että palkkien värit ovat kaikki samanlaisia.

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

Koodin selitys

  • Palkkien värejä ohjaa geometrisen kohteen sisällä oleva aes()-kartoitus (eli ei ggplot()). Voit muuttaa väriä täyttöargumenteilla. Täällä voit valita korallin värin.

lähtö:

Muuta palkkien väriä

Voit käyttää tätä koodia:

grDevices::colors()

nähdäksesi kaikki saatavilla olevat värit R:ssä. Väriä on noin 650.

Muuta intensiteettiä

Voit lisätä tai vähentää palkkien värin voimakkuutta

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

Koodin selitys

  • Voit lisätä/vähentää palkin voimakkuutta muuttamalla alfan arvoa. Suuri alfa lisää intensiteettiä ja pieni alfa vähentää intensiteettiä. alfa vaihtelee välillä 0 - 1. Jos 1, niin väri on sama kuin paletissa. Jos 0, väri on valkoinen. Valitset alfa = 0.1.

lähtö:

Muuta intensiteettiä

Väri ryhmittäin

Voit muuttaa palkkien värejä, mikä tarkoittaa yhtä eri väriä jokaiselle ryhmälle. Esimerkiksi cyl-muuttujalla on kolme tasoa, jolloin voit piirtää pylväskaavion kolmella värillä.

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

Koodin selitys

  • Argumentin täyttö aes():n sisällä mahdollistaa palkin värin muuttamisen. Voit muuttaa väriä asettamalla täyttö = x-akselin muuttuja. Esimerkissäsi x-akselin muuttuja on cyl; täyttö = kerroin (syl.)

lähtö:

Väri ryhmittäin

Lisää ryhmä palkkeihin

Voit jakaa y-akselin edelleen toisen tekijätason perusteella. Voit esimerkiksi laskea automaatti- ja manuaalivaihteiston lukumäärän sylinterityypin perusteella.

Toimit seuraavasti:

  • Vaihe 1: Luo tietokehys mtcars-tietojoukolla
  • Vaihe 2: Merkitse am-muuttuja merkinnällä auto automaattivaihteistolle ja man manuaalivaihteistolle. Muunna am ja cyl tekijöiksi, jotta sinun ei tarvitse käyttää factor()-funktiota ggplot()-funktiossa.
  • Vaihe 3: Piirrä pylväskaavio laskeaksesi vaihteiston lukumäärä sylintereissä
library(dplyr)
# Step 1
data <- mtcars % > % 
#Step 2
mutate(am = factor(am, labels = c("auto", "man")),
    cyl = factor(cyl))

Sinulla on tietojoukko valmiina, voit piirtää kaavion;

# Vaihe 3

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

Koodin selitys

  • Ggpplot() sisältää tietojoukon tiedot ja aes().
  • Aes()-kenttään sisällytät muuttujan x-akseli ja sen, mikä muuttuja vaaditaan palkin täyttämiseen (eli am)
  • geom_bar(): Luo pylväskaavio

lähtö:

Lisää ryhmä palkkeihin

Kartta täyttää palkin kahdella värillä, yhdellä kullekin tasolle. Ryhmän vaihtaminen on vaivatonta valitsemalla tietojoukosta muita tekijämuuttujia.

Pylväskaavio prosentteina

Voit visualisoida palkin prosentteina raakaluvun sijaan.

# Pylväskaavio prosentteina

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

Koodin selitys

  • Käytä sijainti = "fill" geom_bar()-argumentissa luodaksesi grafiikan y-akselilla prosentteina.

lähtö:

Pylväskaavio prosentteina

Vierekkäiset palkit

Pylväskaavio on helppo piirtää ryhmämuuttujan vierekkäin.

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

Koodin selitys

  • position=position_dodge(): Kertoo selkeästi, kuinka palkit järjestetään

lähtö:

Vierekkäiset palkit

histogrammi

Pylväskaavion opetusohjelman toisessa osassa voit edustaa muuttujien ryhmää y-akselin arvoilla.

Tavoitteenasi on luoda kaavio, jossa on kunkin sylinterityypin keskimääräinen mailia gallonaa kohden. Voit piirtää informatiivisen kaavion seuraavasti:

  • Vaihe 1: Luo uusi muuttuja keskimääräisellä maililla gallonaa kohden sylinterikohtaisesti
  • Vaihe 2: Luo perushistogrammi
  • Vaihe 3: Muuta suuntaa
  • Vaihe 4: Vaihda väriä
  • Vaihe 5: Muuta kokoa
  • Vaihe 6: Lisää kaavioon tunnisteita

Vaihe 1) Luo uusi muuttuja

Luot datakehyksen nimeltä data_histogram, joka yksinkertaisesti palauttaa keskimääräiset mailit gallonaa kohti auton sylinterien lukumäärän perusteella. Kutsut tätä uutta muuttujaa mean_mpg ja pyöristät keskiarvon kahdella desimaalilla.

# Vaihe 1

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

Vaihe 2) Luo perushistogrammi

Voit piirtää histogrammin. Se ei ole valmis kommunikoimaan toimitettavaksi asiakkaalle, mutta antaa meille intuition trendistä.

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

Koodin selitys

  • Aes() sisältää nyt kaksi muuttujaa. Cyl-muuttuja viittaa x-akseliin ja mean_mpg on y-akseli.
  • Sinun on välitettävä argumentti stat=”identity”, jotta voit viitata y-akselin muuttujaan numeerisena arvona. geom_bar käyttää stat=”bin” oletusarvona.

lähtö:

histogrammi

Vaihe 3) Muuta suuntaa

Voit muuttaa kaavion suunnan pystysuorasta vaakasuoraan.

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

Koodin selitys

  • Voit ohjata graafin suuntaa komennolla coord_flip().

lähtö:

histogrammi

Vaihe 4) Vaihda väriä

Voit erottaa palkkien värit x-akselin muuttujan tekijätason mukaan.

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

Koodin selitys

  • Voit piirtää kaavion ryhmittäin fill=cyl -kuvauksella. R huolehtii automaattisesti väreistä cyl-muuttujan tasojen perusteella

lähtö:

histogrammi

Vaihe 5) Muuta kokoa

Jotta kaavio näyttää kauniimmalta, pienennät palkin leveyttä.

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

Koodin selitys

  • Geom_bar():n sisällä oleva leveysargumentti ohjaa palkin kokoa. Suurempi arvo lisää leveyttä.
  • Huomaa, että tallennat kaavion muuttujakaavioon. Teet niin, koska seuraava vaihe ei muuta muuttujakaavion koodia. Se parantaa koodin luettavuutta.

lähtö:

histogrammi

Vaihe 6) Lisää kaavioon tunnisteita

Viimeinen vaihe koostuu muuttujan mean_mpg arvon lisäämisestä tarraan.

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

Koodin selitys

  • Funktio geom_text() on hyödyllinen ohjaamaan tekstin estetiikkaa.
    • label=: Lisää tarra palkkeihin
    • mean_mpg: Käytä muuttujaa mean_mpg tunnisteena
  • hvain ohjaa tarran sijaintia. Arvot, jotka on suljettu 1:een, näyttävät tunnisteen palkin yläosassa, ja korkeammat arvot tuovat tunnisteen alareunaan. Jos kaavion suunta on pystysuora, muuta hjust arvoksi vjust.
  • color=”white”: Muuta tekstin väriä. Tässä käytät valkoista väriä.
  • koko=3: Aseta tekstin koko.

lähtö:

histogrammi

Yhteenveto

Pylväskaavio on hyödyllinen, kun x-akseli on kategorinen muuttuja. Y-akseli voi olla joko laskenta tai yhteenvetotilasto. Alla olevassa taulukossa on yhteenveto pylväskaavion ohjaamisesta ggplot2:lla:

Tavoite Koodi
Laskea
ggplot(df, eas(x= factor(x1)) + geom_bar()
Laske eri värisillä täytteillä
ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar()
Laske ryhmien kanssa, pinottu
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge())
Laske ryhmien kanssa vierekkäin
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar()
Laske ryhmien kanssa, pinottu %
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge())
arvot
ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity")