O diagramă cu bare este o modalitate excelentă de a afișa variabile categorice pe axa x. Acest tip de grafic denotă două aspecte în axa y.
- Primul contează numărul de apariții între grupuri.
- Al doilea arată o statistică sumară (min, max, medie și așa mai departe) a unei variabile din axa y.
Veți utiliza setul de date mtcars cu următoarele variabile:
- cyl: Numărul cilindrului din mașină. Variabilă numerică
- am: Tipul transmisiei. 0 pentru automat și 1 pentru manual. Variabilă numerică
- mpg: mile pe galon. Variabilă numerică
În acest tutorial, veți învăța
- Cum se creează diagramă cu bare
- Schimbați culoarea barelor
- Schimbați intensitatea
- Culoare pe grupe
- Adăugați un grup în bare
- Diagrama cu bare în procente
- Barele alăturate
- Histogramă
Cum se creează diagramă cu bare
Pentru a crea un grafic în R, puteți utiliza biblioteca ggplot care creează grafice gata de publicare. Sintaxa de bază a acestei biblioteci este:
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()`
În acest tutorial, sunteți interesat de obiectul geometric geom_bar () care creează diagrama cu bare.
Diagramă cu bare: numărare
Primul dvs. grafic arată frecvența cilindrului cu geom_bar (). Codul de mai jos este cea mai de bază sintaxă.
library(ggplot2)# Most basic bar chartggplot(mtcars, aes(x = factor(cyl))) +geom_bar()
Explicarea codului
- Treceți setul de date mtcars la ggplot.
- În argumentul aes (), adăugați axa x ca variabilă factor (cyl)
- Semnul + înseamnă că doriți ca R să citească în continuare codul. Face codul mai lizibil prin ruperea acestuia.
- Folosiți geom_bar () pentru obiectul geometric.
Ieșire:
Notă : asigurați-vă că convertiți variabilele într-un factor, altfel R tratează variabilele ca fiind numerice. Vedeți exemplul de mai jos.
Personalizați graficul
Pot fi transmise patru argumente pentru a personaliza graficul:
- `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
Schimbați culoarea barelor
Puteți schimba culoarea barelor. Rețineți că culorile barelor sunt similare.
# Change the color of the barsggplot(mtcars, aes(x = factor(cyl))) +geom_bar(fill = "coral") +theme_classic()
Explicarea codului
- Culorile barelor sunt controlate prin maparea aes () în interiorul obiectului geometric (adică nu în ggplot ()). Puteți schimba culoarea cu argumentele de umplere. Aici, alegeți culoarea coralului.
Ieșire:
Puteți utiliza acest cod:
grDevices::colors()
pentru a vedea toate culorile disponibile în R. Există aproximativ 650 de culori.
Schimbați intensitatea
Puteți crește sau micșora intensitatea culorii barelor
# Change intensityggplot(mtcars,aes(factor(cyl))) +geom_bar(fill = "coral",alpha = 0.5) +theme_classic()
Explicarea codului
- Pentru a crește / micșora intensitatea barei, puteți modifica valoarea alfa. Un alfa mare crește intensitatea, iar alfa redus reduce intensitatea. alfa variază de la 0 la 1. Dacă este 1, atunci culoarea este aceeași cu paleta. Dacă 0, culoarea este albă. Alegeți alfa = 0,1.
Ieșire:
Culoare pe grupe
Puteți schimba culorile barelor, adică o culoare diferită pentru fiecare grup. De exemplu, variabila cyl are trei niveluri, apoi puteți trasa graficul cu trei culori.
# Color by groupggplot(mtcars, aes(factor(cyl),fill = factor(cyl))) +geom_bar()
Explicarea codului
- Argumentul umplere în interiorul aes () permite schimbarea culorii barei. Schimbați culoarea setând fill = variabilă pe axa x. În exemplul dvs., variabila axei x este cyl; umplere = factor (cyl)
Ieșire:
Adăugați un grup în bare
Puteți împărți în continuare axa Y pe baza unui alt nivel de factor. De exemplu, puteți număra numărul de transmisii automate și manuale în funcție de tipul cilindrului.
Veți proceda după cum urmează:
- Pasul 1: Creați cadrul de date cu setul de date mtcars
- Pasul 2: Etichetați variabila am cu auto pentru transmisie automată și om pentru transmisie manuală. Convertiți am și cyl ca factor, astfel încât să nu aveți nevoie să utilizați factorul () în funcția ggplot ().
- Pasul 3: Trasați graficul cu bare pentru a număra numărul de transmisie pe cilindru
library(dplyr)# Step 1data <- mtcars % > %#Step 2mutate(am = factor(am, labels = c("auto", "man")),cyl = factor(cyl))
Aveți setul de date gata, puteți trage graficul;
# Pasul 3
ggplot(data, aes(x = cyl, fill = am)) +geom_bar() +theme_classic()
Explicarea codului
- Ggpplot () conține datele setului de date și aes ().
- În aes () includeți variabila axa x și ce variabilă este necesară pentru a umple bara (adică am)
- geom_bar (): Creați diagrama cu bare
Ieșire:
Cartarea va umple bara cu două culori, una pentru fiecare nivel. Nu este ușor să schimbați grupul alegând alte variabile de factor din setul de date.
Diagrama cu bare în procente
Puteți vizualiza bara în procente în loc de numărul brut.
# Diagrama cu bare în procente
ggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = "fill") +theme_classic()
Explicarea codului
- Utilizați poziția = "umplere" în argumentul geom_bar () pentru a crea un grafic cu procent în axa y.
Ieșire:
Barele alăturate
Este ușor de trasat graficul cu bare cu variabila de grup una lângă alta.
# Bar chart side by sideggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = position_dodge()) +theme_classic()
Explicarea codului
- position = position_dodge (): spune în mod explicit cum să aranjați barele
Ieșire:
Histogramă
În a doua parte a tutorialului cu diagrame cu bare, puteți reprezenta grupul de variabile cu valori în axa y.
Obiectivul dvs. este să creați un grafic cu mila medie pe galon pentru fiecare tip de cilindru. Pentru a desena un grafic informativ, veți urma acești pași:
- Pasul 1: Creați o nouă variabilă cu mila medie pe galon pe cilindru
- Pasul 2: Creați o histogramă de bază
- Pasul 3: Schimbați orientarea
- Pasul 4: Schimbați culoarea
- Pasul 5: Schimbați dimensiunea
- Pasul 6: adăugați etichete în grafic
Pasul 1) Creați o nouă variabilă
Creați un cadru de date denumit data_histogram care returnează pur și simplu kilometrul mediu pe galon în funcție de numărul de cilindri din mașină. Numiți această nouă variabilă mean_mpg și rotunjiți media cu două zecimale.
# Pasul 1
data_histogram <- mtcars % > %mutate(cyl = factor(cyl)) % > %group_by(cyl) % > %summarize(mean_mpg = round(mean(mpg), 2))
Pasul 2) Creați o histogramă de bază
Puteți parcela histograma. Nu este gata să comunice pentru a fi livrat clientului, dar ne oferă o intuiție despre tendință.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity")
Explicarea codului
- Aes () are acum două variabile. Variabila cyl se referă la axa x, iar mean_mpg este axa y.
- Trebuie să treceți argumentul stat = "identitate" pentru a indica variabila din axa y ca valoare numerică. geom_bar folosește stat = "bin" ca valoare implicită.
Ieșire:
Pasul 3) Schimbați orientarea
Schimbați orientarea graficului de la verticală la orizontală.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity") +coord_flip()
Explicarea codului
- Puteți controla orientarea graficului cu coord_flip ().
Ieșire:
Pasul 4) Schimbați culoarea
Puteți diferenția culorile barelor în funcție de nivelul factorului variabilei axei x.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity") +coord_flip() +theme_classic()
Explicarea codului
- Puteți face graficul pe grupuri cu maparea fill = cyl. R are grijă automat de culori pe baza nivelurilor variabilei cyl
Ieșire:
Pasul 5) Schimbați dimensiunea
Pentru a face graficul să arate mai frumos, reduceți lățimea barei.
graph <- ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity",width = 0.5) +coord_flip() +theme_classic()
Explicarea codului
- Argumentul lățime din interiorul geom_bar () controlează dimensiunea barei. O valoare mai mare crește lățimea.
- Rețineți, stocați graficul în graficul variabil. Faceți acest lucru deoarece pasul următor nu va schimba codul grafului variabil. Îmbunătățește lizibilitatea codului.
Ieșire:
Pasul 6) Adăugați etichete în grafic
Ultimul pas constă în adăugarea valorii variabilei mean_mpg în etichetă.
graph +geom_text(aes(label = mean_mpg),hjust = 1.5,color = "white",size = 3) +theme_classic()
Explicarea codului
- Funcția geom_text () este utilă pentru a controla estetica textului.
- etichetă =: Adăugați o etichetă în interiorul barelor
- mean_mpg: Utilizați variabila mean_mpg pentru etichetă
- Hjust controlează locația etichetei. Valorile închise la 1 afișează eticheta în partea de sus a barei, iar valorile mai mari aduc eticheta în partea de jos. Dacă orientarea graficului este verticală, schimbați hjust în vjust.
- color = "white": schimbați culoarea textului. Aici folosiți culoarea albă.
- size = 3: Setați dimensiunea textului.
Ieșire:
rezumat
O diagramă cu bare este utilă atunci când axa x este o variabilă categorică. Axa y poate fi fie un număr, fie o statistică sumară. Tabelul de mai jos rezumă modul de control al diagramei cu bare cu ggplot2:
Obiectiv |
cod |
---|---|
Numara |
ggplot(df, eas(x= factor(x1)) + geom_bar() |
Numărați cu diferite culori de umplere |
ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar() |
Numărați cu grupuri, stivuite |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Numărați cu grupuri, unul lângă altul |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar() |
Numărați cu grupuri, stivuite în% |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Valori |
ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity") |