Lintdiagramm ja histogramm R-s (näitega)

Lintdiagramm on suurepärane viis kategooriliste muutujate kuvamiseks x-teljel. Seda tüüpi graafik tähistab y-teljel kahte aspekti.

  1. Esimene loendab esinemiste arvu rühmade vahel.
  2. Teine näitab y-telje muutuja kokkuvõtvat statistikat (min, max, keskmine ja nii edasi).

Kasutate mtcarsi andmestikku, millel on järgmised muutujad:

  • cyl: silindri number autos. Numbriline muutuja
  • am: ülekande tüüp. 0 automaatse ja 1 manuaalse jaoks. Numbriline muutuja
  • mpg: miili galloni kohta. Numbriline muutuja

Kuidas luua tulpdiagrammi

Graafiku loomiseks R, saate kasutada teeki ggplot, mis loob avaldamiseks valmis graafikud. Selle teegi põhisüntaks 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()` 

Selles õpetuses huvitab teid geomeetriline objekt geom_bar(), mis loob tulpdiagrammi.

Lintdiagramm: loendamine

Teie esimene graafik näitab silindri sagedust koos geom_bar(). Allolev kood on kõige elementaarsem süntaks.

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

Koodi selgitus

  • Edastate andmestiku mtcars ggplotile.
  • Argumendi aes() sisse lisate x-telje faktorimuutujana (cyl)
  • + märk tähendab, et soovite, et R jätkaks koodi lugemist. See muudab koodi loetavamaks, purustades selle.
  • Kasutage geomeetrilise objekti jaoks geom_bar().

Väljund:

Lintdiagramm: loendamine

märkused: veenduge, et muudate muutujad teguriks, vastasel juhul käsitleb R muutujaid numbrilistena. Vaadake allolevat näidet.

Lintdiagramm: loendamine

Kohandage graafikut

Graafiku kohandamiseks saab edastada neli argumenti:

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

Muutke ribade värvi

Saate muuta ribade värvi. Pange tähele, et ribade värvid on kõik sarnased.

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

Koodi selgitus

  • Ribade värve juhib geomeetrilise objekti sees (st mitte ggplot()) kaardistus aes(). Värvi saab muuta täiteargumentidega. Siin valite korallivärvi.

Väljund:

Muutke ribade värvi

Saate kasutada seda koodi:

grDevices::colors()

et näha kõiki R-s saadaolevaid värve. Seal on umbes 650 värvi.

Muutke intensiivsust

Saate suurendada või vähendada ribade värvi intensiivsust

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

Koodi selgitus

  • Riba intensiivsuse suurendamiseks/vähendamiseks saate muuta alfa väärtust. Suur alfa suurendab intensiivsust ja madal alfa vähendab intensiivsust. alfa on vahemikus 0 kuni 1. Kui 1, siis on värv sama, mis paletil. Kui 0, on värv valge. Valite alfa = 0.1.

Väljund:

Muutke intensiivsust

Värv rühmade kaupa

Saate muuta ribade värve, mis tähendab iga rühma jaoks ühte erinevat värvi. Näiteks cyl muutujal on kolm taset, siis saate tulpdiagrammi joonistada kolme värviga.

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

Koodi selgitus

  • Argumendi täitmine aes() sees võimaldab muuta riba värvi. Värvi muutmiseks määrate täitmise = x-telje muutuja. Teie näites on x-telje muutuja cyl; täitmine = tegur (tsiil)

Väljund:

Värv rühmade kaupa

Lisage ribadele rühm

Saate y-telje täiendavalt poolitada mõne muu faktori taseme alusel. Näiteks saate silindri tüübi alusel lugeda automaat- ja manuaalkäigukasti arvu.

Te jätkate järgmiselt:

  • 1. toiming: looge andmeraam mtcarsi andmekogumiga
  • 2. samm: Märkige muutuja am automaatkäigukasti puhul tähisega auto ja manuaalkäigukasti puhul man. Teisendage am ja cyl teguriks, nii et te ei peaks funktsioonis ggplot() kasutama faktorit().
  • 3. samm: joonistage tulpdiagramm, et loendada ülekande arv silindrite kaupa
library(dplyr)
# Step 1
data <- mtcars % > % 
#Step 2
mutate(am = factor(am, labels = c("auto", "man")),
    cyl = factor(cyl))

Teil on andmestik valmis, saate graafiku joonistada;

# Samm 3

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

Koodi selgitus

  • Ggpplot() sisaldab andmestiku andmeid ja aes().
  • Funktsiooni aes() lisate muutuja x-telje ja seda, millist muutujat on vaja riba täitmiseks (st am)
  • geom_bar(): loo tulpdiagramm

Väljund:

Lisage ribadesse rühm

Kaardistamine täidab riba kahe värviga, üks iga taseme jaoks. Rühma on lihtne muuta, valides andmekogumis muid tegurimuutujaid.

Lintdiagramm protsentides

Toorarvu asemel saate riba visualiseerida protsentides.

# Tulpdiagramm protsentides

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

Koodi selgitus

  • Kasutage argumendis geom_bar() position = "fill", et luua y-teljel protsentidega graafik.

Väljund:

Tulpdiagramm protsentides

Kõrvuti küljeribad

Lintdiagrammi on lihtne joonistada koos rühma muutujaga kõrvuti.

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

Koodi selgitus

  • position=position_dodge(): ütleb selgesõnaliselt, kuidas ribasid paigutada

Väljund:

Kõrvuti küljeribad

Histogramm

Lintdiagrammi õpetuse teises osas saate esitada muutujate rühma väärtustega y-teljel.

Teie eesmärk on luua graafik, kus on näidatud iga silindritüübi keskmine miil galloni kohta. Informatiivse graafiku koostamiseks toimige järgmiselt.

  • 1. samm: looge uus muutuja keskmise miili galloni kohta silindri kaupa
  • 2. samm: looge põhiline histogramm
  • 3. samm: muutke orientatsiooni
  • 4. samm: muutke värvi
  • 5. samm: muutke suurust
  • 6. samm: lisage graafikule sildid

Step 1) Looge uus muutuja

Loote andmeraami nimega data_histogram, mis lihtsalt tagastab keskmise miili galloni kohta autos olevate silindrite arvu järgi. Kutsute seda uut muutujat mean_mpg ja ümardate keskmise kahe kümnendkohaga.

# Samm 1

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

Step 2) Looge põhiline histogramm

Saate joonistada histogrammi. See ei ole valmis suhtlema, et see kliendile kohale toimetada, kuid annab meile intuitsiooni trendi kohta.

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

Koodi selgitus

  • Aes()-l on nüüd kaks muutujat. Muutuja cyl viitab x-teljele ja keskmine_mpg on y-telg.
  • Peate edastama argumendi stat=”identity”, et viidata y-telje muutujale arvväärtusena. geom_bar kasutab vaikeväärtusena stat=”bin”.

Väljund:

Histogramm

Step 3) Muutke orientatsiooni

Saate muuta graafiku orientatsiooni vertikaalsest horisontaalseks.

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

Koodi selgitus

  • Graafiku orientatsiooni saab juhtida funktsiooniga coord_flip().

Väljund:

Histogramm

Step 4) Muuda värvi

Tulbade värve saab eristada vastavalt x-telje muutuja faktoritasemele.

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

Koodi selgitus

  • Graafiku saab joonistada rühmade kaupa, kasutades vastendust fill=cyl. R hoolitseb automaatselt värvide eest, lähtudes cyl muutuja tasemetest

Väljund:

Histogramm

Step 5) Muutke suurust

Graafiku ilusamaks muutmiseks vähendate riba laiust.

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

Koodi selgitus

  • Laiuse argument geom_bar() sees määrab riba suurust. Suurem väärtus suurendab laiust.
  • Pange tähele, et salvestate graafiku muutujagraafikus. Teete seda, sest järgmine samm ei muuda muutujagraafiku koodi. See parandab koodi loetavust.

Väljund:

Histogramm

Step 6) Lisage graafikule sildid

Viimane samm seisneb muutuja mean_mpg väärtuse lisamises sildile.

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

Koodi selgitus

  • Funktsioon geom_text() on kasulik teksti esteetika kontrollimiseks.
    • label=: lisage ribade sisse silt
    • mean_mpg: kasutage sildi jaoks muutujat mean_mpg
  • hlihtsalt juhib sildi asukohta. Väärtused, mis on suletud 1-le, kuvavad sildi riba ülaosas ja kõrgemad väärtused toovad sildi alla. Kui graafiku suund on vertikaalne, muutke hjust väärtuseks vjust.
  • color=”white”: muutke teksti värvi. Siin kasutate valget värvi.
  • suurus=3: määrake teksti suurus.

Väljund:

Histogramm

kokkuvõte

Lintdiagramm on kasulik, kui x-telg on kategooriline muutuja. Y-telg võib olla kas loendus või kokkuvõtlik statistika. Allolev tabel võtab kokku, kuidas juhtida tulpdiagrammi ggplot2 abil:

Eesmärk kood
Loendama
ggplot(df, eas(x= factor(x1)) + geom_bar()
Loendage erinevat värvi täidisega
ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar()
Arvestada gruppidega, virnastatud
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge())
Loendage rühmadega, kõrvuti
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar()
Loenda koos rühmadega, virnastatud %
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge())
Väärtused
ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity")