Trakasti dijagram i histogram u R (s primjerom)

Trakasti dijagram izvrstan je način za prikaz kategoričkih varijabli na x-osi. Ova vrsta grafikona označava dva aspekta na y-osi.

  1. Prvi broji broj pojavljivanja između grupa.
  2. Drugi prikazuje zbirnu statistiku (min, maks, prosjek i tako dalje) varijable na y-osi.

Koristit ćete skup podataka mtcars sa sljedećim varijablama:

  • cyl: Broj cilindra u automobilu. Numerička varijabla
  • am: Vrsta prijenosa. 0 za automatski i 1 za ručni. Numerička varijabla
  • mpg: milja po galonu. Numerička varijabla

Kako stvoriti trakasti grafikon

Za izradu grafikona u R, možete koristiti biblioteku ggplot koja stvara grafikone spremne za objavljivanje. Osnovna sintaksa ove biblioteke je:

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

U ovom vodiču vas zanima geometrijski objekt geom_bar() koji stvara trakasti grafikon.

Stupčasti dijagram: broj

Vaš prvi grafikon prikazuje frekvenciju cilindra s geom_bar(). Kod u nastavku je najosnovnija sintaksa.

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

Objašnjenje koda

  • Prosljeđujete skup podataka mtcars u ggplot.
  • Unutar argumenta aes(), dodajete x-os kao varijablu faktora (cyl)
  • Znak + znači da želite da R nastavi čitati kod. Čini kôd čitljivijim razbijanjem.
  • Koristite geom_bar() za geometrijski objekt.

Izlaz:

Stupčasti dijagram: broj

bilješke: provjerite jeste li pretvorili varijable u faktor inače R tretira varijable kao numeričke. Pogledajte primjer u nastavku.

Stupčasti dijagram: broj

Prilagodite grafikon

Za prilagodbu grafikona mogu se proslijediti četiri argumenta:

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

Promijenite boju traka

Možete promijeniti boju traka. Imajte na umu da su sve boje traka slične.

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

Objašnjenje koda

  • Boje traka kontrolirane su aes() preslikavanjem unutar geometrijskog objekta (tj. ne u ggplot()). Možete promijeniti boju s argumentima ispune. Ovdje birate boju koralja.

Izlaz:

Promijenite boju traka

Možete koristiti ovaj kod:

grDevices::colors()

da vidite sve boje dostupne u R. Postoji oko 650 boja.

Promijenite intenzitet

Možete povećati ili smanjiti intenzitet boje traka

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

Objašnjenje koda

  • Za povećanje/smanjivanje intenziteta trake, možete promijeniti vrijednost alfe. Velika alfa povećava intenzitet, a niska alfa smanjuje intenzitet. alfa je u rasponu od 0 do 1. Ako je 1, tada je boja ista kao i paleta. Ako je 0, boja je bijela. Vi birate alfa = 0.1.

Izlaz:

Promijenite intenzitet

Boja po skupinama

Možete promijeniti boje traka, što znači jednu različitu boju za svaku grupu. Na primjer, cyl varijabla ima tri razine, a zatim možete iscrtati trakasti grafikon s tri boje.

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

Objašnjenje koda

  • Argument fill unutar aes() omogućuje promjenu boje trake. Boju mijenjate postavljanjem fill = varijabla x-osi. U vašem primjeru, varijabla x-osi je cyl; ispuna = faktor (cyl)

Izlaz:

Boja po grupama

Dodajte grupu u trake

Možete dodatno podijeliti y-os na temelju druge razine faktora. Na primjer, možete računati broj automatskih i ručnih mjenjača na temelju vrste cilindra.

Postupit ćete na sljedeći način:

  • Korak 1: Stvorite podatkovni okvir s mtcars skupom podataka
  • Korak 2: Označite am varijablu s auto za automatski mjenjač i man za ručni mjenjač. Pretvorite am i cyl kao faktor tako da ne morate koristiti factor() u funkciji ggplot().
  • Korak 3: Nacrtajte trakasti dijagram za brojanje prijenosa po cilindru
library(dplyr)
# Step 1
data <- mtcars % > % 
#Step 2
mutate(am = factor(am, labels = c("auto", "man")),
    cyl = factor(cyl))

Imate spreman skup podataka, možete iscrtati grafikon;

# Korak 3

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

Objašnjenje koda

  • Gggplot() sadrži podatke skupa podataka i aes().
  • U aes() uključujete varijablu x-os i koja je varijabla potrebna za popunjavanje trake (tj. am)
  • geom_bar(): Kreirajte trakasti grafikon

Izlaz:

Dodajte grupu u trake

Mapiranje će ispuniti traku s dvije boje, jednom za svaku razinu. Grupu je lako promijeniti odabirom drugih faktorskih varijabli u skupu podataka.

Trakasti dijagram u postocima

Traku možete vizualizirati u postocima umjesto u sirovom broju.

# Trakasti grafikon u postocima

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

Objašnjenje koda

  • Upotrijebite position = “fill” u argumentu geom_bar() za stvaranje grafike s postotkom na y-osi.

Izlaz:

Trakasti grafikon u postocima

Šipke jedna uz drugu

Lako je iscrtati trakasti grafikon s grupnom varijablom jednu pored druge.

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

Objašnjenje koda

  • position=position_dodge(): Eksplicitno govori kako rasporediti trake

Izlaz:

Side by Side Bars

Histogram

U drugom dijelu vodiča za trakasti grafikon možete predstaviti grupu varijabli s vrijednostima na y-osi.

Vaš cilj je izraditi grafikon s prosječnom miljom po galonu za svaku vrstu cilindra. Da biste nacrtali informativni grafikon, slijedite ove korake:

  • Korak 1: Stvorite novu varijablu s prosječnom kilometražom po galonu po cilindru
  • Korak 2: Napravite osnovni histogram
  • Korak 3: Promijenite orijentaciju
  • Korak 4: Promijenite boju
  • Korak 5: Promijenite veličinu
  • Korak 6: Dodajte oznake na grafikon

Korak 1) Napravite novu varijablu

Stvorite podatkovni okvir pod nazivom data_histogram koji jednostavno vraća prosječne milje po galonu prema broju cilindara u automobilu. Ovu novu varijablu zovete mean_mpg i zaokružujete srednju vrijednost s dvije decimale.

# Korak 1

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

Korak 2) Napravite osnovni histogram

Možete iscrtati histogram. Nije spreman za komunikaciju da bi se isporučio klijentu, ali nam daje intuiciju o trendu.

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

Objašnjenje koda

  • Aes() sada ima dvije varijable. Cyl varijabla odnosi se na x-os, a mean_mpg je y-os.
  • Morate proslijediti argument stat=”identity” da biste varijablu na y-osi prenijeli kao numeričku vrijednost. geom_bar koristi stat=”bin” kao zadanu vrijednost.

Izlaz:

Histogram

Korak 3) Promijenite orijentaciju

Mijenjate orijentaciju grafikona iz okomite u vodoravnu.

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

Objašnjenje koda

  • Možete kontrolirati orijentaciju grafikona pomoću coord_flip().

Izlaz:

Histogram

Korak 4) Promijenite boju

Možete razlikovati boje traka prema razini faktora varijable osi x.

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

Objašnjenje koda

  • Grafikon možete iscrtati po grupama s preslikavanjem fill=cyl. R automatski brine o bojama na temelju razina cyl varijable

Izlaz:

Histogram

Korak 5) Promijenite veličinu

Da bi grafikon izgledao ljepše, smanjite širinu trake.

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

Objašnjenje koda

  • Argument širine unutar geom_bar() kontrolira veličinu trake. Veća vrijednost povećava širinu.
  • Napomena, graf pohranjujete u varijabilni graf. To činite jer sljedeći korak neće promijeniti kod varijabilnog grafikona. Poboljšava čitljivost koda.

Izlaz:

Histogram

Korak 6) Dodajte oznake na grafikon

Posljednji korak sastoji se od dodavanja vrijednosti varijable mean_mpg u oznaku.

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

Objašnjenje koda

  • Funkcija geom_text() korisna je za kontrolu estetike teksta.
    • label=: Dodajte oznaku unutar traka
    • mean_mpg: Koristite varijablu mean_mpg za oznaku
  • hjust kontrolira lokaciju oznake. Vrijednosti zatvorene na 1 prikazuju oznaku na vrhu trake, a veće vrijednosti dovode oznaku na dno. Ako je orijentacija grafikona okomita, promijenite hjust u vjust.
  • color=”white”: Promjena boje teksta. Ovdje koristite bijelu boju.
  • veličina=3: Postavite veličinu teksta.

Izlaz:

Histogram

Rezime

Stupčasti dijagram koristan je kada je x-os kategorička varijabla. Y-os može biti brojanje ili sumarna statistika. Donja tablica ukratko prikazuje kako kontrolirati trakasti grafikon pomoću ggplot2:

Cilj Kodirati
Računati
ggplot(df, eas(x= factor(x1)) + geom_bar()
Brojite s različitim bojama ispune
ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar()
Brojite s grupama, naslagano
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge())
Brojite s grupama, rame uz rame
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar()
Računaj s grupama, naslagano u %
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge())
Vrijednosti
ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity")