Et søjlediagram er en fantastisk måde at vise kategoriske variabler på x-aksen. Denne type graf angiver to aspekter i y-aksen.
- Den første tæller antallet af forekomst mellem grupper.
- Den anden viser en oversigtsstatistik (min, max, gennemsnit osv.) Af en variabel i y-aksen.
Du bruger mtcars-datasættet med følgende variabler:
- cyl: Antal cylindre i bilen. Numerisk variabel
- am: transmissionstype. 0 til automatisk og 1 til manuel. Numerisk variabel
- mpg: Miles pr. gallon. Numerisk variabel
I denne vejledning lærer du
- Sådan oprettes søjlediagram
- Skift farve på bjælkerne
- Skift intensitet
- Farve efter grupper
- Tilføj en gruppe i bjælkerne
- Søjlediagram i procent
- Side ved side barer
- Histogram
Sådan oprettes søjlediagram
For at oprette graf i R kan du bruge biblioteket ggplot, der opretter klar-til-offentliggørelse grafer. Den grundlæggende syntaks for dette bibliotek er:
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()`
I denne vejledning er du interesseret i det geometriske objekt geom_bar (), der opretter søjlediagrammet.
Søjlediagram: antal
Din første graf viser hyppighed af cylinder med geom_bar (). Koden nedenfor er den mest basale syntaks.
library(ggplot2)# Most basic bar chartggplot(mtcars, aes(x = factor(cyl))) +geom_bar()
Kode Forklaring
- Du sender datasættet mtcars til ggplot.
- Inde i argumentet aes () tilføjer du x-aksen som en faktorvariabel (cyl)
- + Tegnet betyder, at du vil have R til at fortsætte med at læse koden. Det gør koden mere læselig ved at bryde den.
- Brug geom_bar () til det geometriske objekt.
Produktion:
Bemærk : Sørg for at konvertere variablerne til en faktor, ellers behandler R variablerne som numeriske. Se eksemplet nedenfor.
Tilpas grafen
Fire argumenter kan sendes for at tilpasse grafen:
- `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
Skift farve på bjælkerne
Du kan ændre farven på bjælkerne. Bemærk, at stængernes farver alle er ens.
# Change the color of the barsggplot(mtcars, aes(x = factor(cyl))) +geom_bar(fill = "coral") +theme_classic()
Kode Forklaring
- Farverne på bjælkerne styres af aes () -kortlægningen inde i det geometriske objekt (dvs. ikke i ggplot ()). Du kan ændre farven med udfyldningsargumenterne. Her vælger du koralfarven.
Produktion:
Du kan bruge denne kode:
grDevices::colors()
for at se alle de tilgængelige farver i R. Der er omkring 650 farver.
Skift intensitet
Du kan øge eller formindske intensiteten af bjælkenes farve
# Change intensityggplot(mtcars,aes(factor(cyl))) +geom_bar(fill = "coral",alpha = 0.5) +theme_classic()
Kode Forklaring
- For at øge / formindske linjens intensitet kan du ændre alfaens værdi. En stor alfa øger intensiteten, og lav alfa reducerer intensiteten. alfa varierer fra 0 til 1. Hvis 1, er farven den samme som paletten. Hvis 0, er farven hvid. Du vælger alpha = 0,1.
Produktion:
Farve efter grupper
Du kan ændre farverne på bjælkerne, hvilket betyder en anden farve for hver gruppe. For eksempel har cyl variabel tre niveauer, så kan du plotte søjlediagrammet med tre farver.
# Color by groupggplot(mtcars, aes(factor(cyl),fill = factor(cyl))) +geom_bar()
Kode Forklaring
- Argumentet fylde inde i aes () tillader ændring af linjens farve. Du ændrer farven ved at indstille fyld = x-akse-variabel. I dit eksempel er variablen x-akse cyl; fyld = faktor (cyl)
Produktion:
Tilføj en gruppe i bjælkerne
Du kan yderligere opdele y-aksen baseret på et andet faktorniveau. For eksempel kan du tælle antallet af automatisk og manuel transmission baseret på cylindertypen.
Du fortsætter som følger:
- Trin 1: Opret datarammen med mtcars-datasæt
- Trin 2: Mærk am-variablen med auto til automatisk transmission og mand til manuel transmission. Konverter am og cyl som en faktor, så du ikke behøver at bruge faktor () i funktionen ggplot ().
- Trin 3: Plot søjlediagrammet for at tælle antallet af transmissioner efter cylinder
library(dplyr)# Step 1data <- mtcars % > %#Step 2mutate(am = factor(am, labels = c("auto", "man")),cyl = factor(cyl))
Du har datasættet klar, du kan plotte grafen;
# Trin 3
ggplot(data, aes(x = cyl, fill = am)) +geom_bar() +theme_classic()
Kode Forklaring
- Ggpplot () indeholder datasættets data og aes ().
- I aes () inkluderer du variablen x-akse, og hvilken variabel der kræves for at udfylde bjælken (dvs. am)
- geom_bar (): Opret søjlediagrammet
Produktion:
Kortlægningen udfylder bjælken med to farver, en for hvert niveau. Det er ubesværet at ændre gruppen ved at vælge andre faktorvariabler i datasættet.
Søjlediagram i procent
Du kan visualisere bjælken i procent i stedet for det rå antal.
# Søjlediagram i procent
ggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = "fill") +theme_classic()
Kode Forklaring
- Brug position = "fill" i argumentet geom_bar () til at oprette en grafik med procent i y-aksen.
Produktion:
Side ved side barer
Det er let at plotte søjlediagrammet med gruppevariablen side om side.
# Bar chart side by sideggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = position_dodge()) +theme_classic()
Kode Forklaring
- position = position_dodge (): Fortæller eksplicit, hvordan bjælkerne skal arrangeres
Produktion:
Histogram
I anden del af søjlediagramundervisningen kan du repræsentere gruppen af variabler med værdier i y-aksen.
Dit mål er at oprette en graf med den gennemsnitlige kilometer pr. Gallon for hver type cylinder. For at tegne en informativ graf følger du disse trin:
- Trin 1: Opret en ny variabel med den gennemsnitlige mile pr. Gallon pr. Cylinder
- Trin 2: Opret et grundlæggende histogram
- Trin 3: Skift retning
- Trin 4: Skift farve
- Trin 5: Skift størrelse
- Trin 6: Føj etiketter til grafen
Trin 1) Opret en ny variabel
Du opretter en dataramme med navnet data_histogram, som simpelthen returnerer de gennemsnitlige miles pr. Gallon med antallet af cylindre i bilen. Du kalder denne nye variabel mean_mpg, og du runder gennemsnittet med to decimaler.
# Trin 1
data_histogram <- mtcars % > %mutate(cyl = factor(cyl)) % > %group_by(cyl) % > %summarize(mean_mpg = round(mean(mpg), 2))
Trin 2) Opret et grundlæggende histogram
Du kan plotte histogrammet. Det er ikke klar til at kommunikere for at blive leveret til klienten, men giver os en intuition om tendensen.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity")
Kode Forklaring
- Aes () har nu to variabler. Cylvariablen henviser til x-aksen, og middel_mpg er y-aksen.
- Du skal videregive argumentet stat = "identity" for at henvise variablen i y-aksen som en numerisk værdi. geom_bar bruger stat = "bin" som standardværdi.
Produktion:
Trin 3) Skift retning
Du ændrer grafens retning fra lodret til vandret.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity") +coord_flip()
Kode Forklaring
- Du kan styre orienteringen af grafen med coord_flip ().
Produktion:
Trin 4) Skift farve
Du kan differentiere farverne på bjælkerne efter faktorniveauet for x-akse-variablen.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity") +coord_flip() +theme_classic()
Kode Forklaring
- Du kan plotte grafen efter grupper med fill = cyl-kortlægningen. R tager sig automatisk af farverne baseret på niveauerne af cyl variabel
Produktion:
Trin 5) Skift størrelse
For at få grafen til at se pænere ud reducerer du linjens bredde.
graph <- ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity",width = 0.5) +coord_flip() +theme_classic()
Kode Forklaring
- Breddeargumentet inde i geom_bar () styrer størrelsen på bjælken. Større værdi øger bredden.
- Bemærk, at du gemmer grafen i den variable graf. Du gør det, fordi det næste trin ikke ændrer koden for den variable graf. Det forbedrer læsbarheden af koden.
Produktion:
Trin 6) Føj etiketter til grafen
Det sidste trin består i at tilføje værdien af variablen mean_mpg i etiketten.
graph +geom_text(aes(label = mean_mpg),hjust = 1.5,color = "white",size = 3) +theme_classic()
Kode Forklaring
- Funktionen geom_text () er nyttig til at kontrollere tekstens æstetik.
- label =: Tilføj en label inde i bjælkerne
- mean_mpg: Brug variablen mean_mpg til etiketten
- hjust styrer placeringen af etiketten. Værdier lukket til 1 viser etiketten øverst i bjælken, og højere værdier bringer etiketten til bunden. Hvis grafens retning er lodret, skal du ændre hjust til vjust.
- color = "white": Skift farve på teksten. Her bruger du den hvide farve.
- størrelse = 3: Indstil størrelsen på teksten.
Produktion:
Resumé
Et søjlediagram er nyttigt, når x-aksen er en kategorisk variabel. Y-aksen kan enten være en optælling eller en sammenfattende statistik. Tabellen nedenfor opsummerer, hvordan du styrer søjlediagram med ggplot2:
Objektiv |
kode |
---|---|
Tælle |
ggplot(df, eas(x= factor(x1)) + geom_bar() |
Tæl med forskellige fyldstoffer |
ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar() |
Tæl med grupper, stablet |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Tæl med grupper side om side |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar() |
Tæl med grupper, stablet i% |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Værdier |
ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity") |