Et søylediagram er en fin måte å vise kategoriske variabler på x-aksen. Denne typen graf angir to aspekter i y-aksen.
- Den første teller antall hendelser mellom gruppene.
- Den andre viser en sammendragsstatistikk (min, maks, gjennomsnitt og så videre) for en variabel i y-aksen.
Du vil bruke mtcars-datasettet med følgende variabler:
- cyl: Antall sylinder i bilen. Numerisk variabel
- am: Type overføring. 0 for automatisk og 1 for manuell. Numerisk variabel
- mpg: Miles per gallon. Numerisk variabel
I denne veiledningen vil du lære
- Hvordan lage søylediagram
- Endre fargen på stolpene
- Endre intensiteten
- Farge etter grupper
- Legg til en gruppe i stolpene
- Søylediagram i prosent
- Side bar side barer
- Histogram
Hvordan lage søylediagram
For å lage graf i R, kan du bruke biblioteket ggplot som lager klare for publisering grafer. Den grunnleggende syntaksen til dette biblioteket 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 opplæringen er du interessert i det geometriske objektet geom_bar () som lager stolpediagrammet.
Søylediagram: antall
Din første graf viser hyppigheten av sylinderen med geom_bar (). Koden nedenfor er den mest grunnleggende syntaksen.
library(ggplot2)# Most basic bar chartggplot(mtcars, aes(x = factor(cyl))) +geom_bar()
Kode Forklaring
- Du sender datasettet mtcars til ggplot.
- Inne i argumentet aes () legger du til x-aksen som en faktorvariabel (cyl)
- + Tegnet betyr at du vil at R skal fortsette å lese koden. Det gjør koden mer lesbar ved å bryte den.
- Bruk geom_bar () for det geometriske objektet.
Produksjon:
Merk : sørg for at du konverterer variablene til en faktor, ellers behandler R variablene som numeriske. Se eksemplet nedenfor.
Tilpass grafen
Fire argumenter kan sendes for å 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
Endre fargen på stolpene
Du kan endre fargen på stolpene. Merk at fargene på stolpene er like.
# Change the color of the barsggplot(mtcars, aes(x = factor(cyl))) +geom_bar(fill = "coral") +theme_classic()
Kode Forklaring
- Fargene på stolpene styres av aes () -kartleggingen inne i det geometriske objektet (dvs. ikke i ggplot ()). Du kan endre fargen med fyllargumentene. Her velger du korallfargen.
Produksjon:
Du kan bruke denne koden:
grDevices::colors()
for å se alle fargene som er tilgjengelige i R. Det er rundt 650 farger.
Endre intensiteten
Du kan øke eller redusere intensiteten på stolpenes farge
# Change intensityggplot(mtcars,aes(factor(cyl))) +geom_bar(fill = "coral",alpha = 0.5) +theme_classic()
Kode Forklaring
- For å øke / redusere intensiteten på linjen, kan du endre verdien på alfa. En stor alfa øker intensiteten, og lav alfa reduserer intensiteten. alfa varierer fra 0 til 1. Hvis 1, er fargen den samme som paletten. Hvis 0, er fargen hvit. Du velger alfa = 0,1.
Produksjon:
Farge etter grupper
Du kan endre fargene på stolpene, noe som betyr en annen farge for hver gruppe. For eksempel har cyl variabel tre nivåer, så kan du plotte søylediagrammet med tre farger.
# Color by groupggplot(mtcars, aes(factor(cyl),fill = factor(cyl))) +geom_bar()
Kode Forklaring
- Argumentet fylle inne i aes () tillater å endre fargen på linjen. Du endrer fargen ved å angi fyll = x-akse-variabel. I eksempelet ditt er x-akse-variabelen cyl; fyll = faktor (syl)
Produksjon:
Legg til en gruppe i stolpene
Du kan videre dele y-aksen basert på et annet faktornivå. For eksempel kan du telle antall automatisk og manuell girkasse basert på sylindertypen.
Du fortsetter som følger:
- Trinn 1: Opprett datarammen med mtcars-datasettet
- Trinn 2: Merk am-variabelen med auto for automatisk girkasse og mann for manuell girkasse. Konverter am og cyl som en faktor slik at du ikke trenger å bruke faktor () i ggplot () -funksjonen.
- Trinn 3: Plott søylediagrammet for å telle antall overføringer etter sylinder
library(dplyr)# Step 1data <- mtcars % > %#Step 2mutate(am = factor(am, labels = c("auto", "man")),cyl = factor(cyl))
Du har datasettet klart, du kan plotte grafen;
# Trinn 3
ggplot(data, aes(x = cyl, fill = am)) +geom_bar() +theme_classic()
Kode Forklaring
- Ggpplot () inneholder datasettdataene og aes ().
- I aes () inkluderer du variabelen x-akse og hvilken variabel som kreves for å fylle linjen (dvs. am)
- geom_bar (): Lag stolpediagrammet
Produksjon:
Kartleggingen vil fylle linjen med to farger, en for hvert nivå. Det er enkelt å endre gruppen ved å velge andre faktorvariabler i datasettet.
Søylediagram i prosent
Du kan visualisere linjen i prosent i stedet for råantallet.
# Søylediagram i prosent
ggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = "fill") +theme_classic()
Kode Forklaring
- Bruk posisjon = "fyll" i argumentet geom_bar () for å lage en grafikk med prosent i y-aksen.
Produksjon:
Side bar side barer
Det er enkelt å plotte søylediagrammet med gruppevariabelen 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 (): Forteller eksplisitt hvordan du ordner stolpene
Produksjon:
Histogram
I den andre delen av søylediagramopplæringen kan du representere gruppen av variabler med verdier i y-aksen.
Målet ditt er å lage en graf med gjennomsnittlig mil per gallon for hver type sylinder. For å tegne en informativ graf, følger du disse trinnene:
- Trinn 1: Opprett en ny variabel med gjennomsnittlig mil per liter sylinder
- Trinn 2: Lag et grunnleggende histogram
- Trinn 3: Endre retningen
- Trinn 4: Endre fargen
- Trinn 5: Endre størrelsen
- Trinn 6: Legg til etiketter i grafen
Trinn 1) Opprett en ny variabel
Du oppretter en dataramme som heter data_histogram som ganske enkelt returnerer gjennomsnittlig miles per gallon med antall sylindere i bilen. Du kaller denne nye variabelen mean_mpg, og du runder gjennomsnittet med to desimaler.
# Trinn 1
data_histogram <- mtcars % > %mutate(cyl = factor(cyl)) % > %group_by(cyl) % > %summarize(mean_mpg = round(mean(mpg), 2))
Trinn 2) Lag et grunnleggende histogram
Du kan plotte histogrammet. Det er ikke klart å kommunisere for å bli levert til klienten, men gir oss en intuisjon om trenden.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity")
Kode Forklaring
- Aes () har nå to variabler. Syl-variabelen refererer til x-aksen, og mean_mpg er y-aksen.
- Du må sende argumentet stat = "identity" for å referere variabelen i y-aksen som en numerisk verdi. geom_bar bruker stat = "bin" som standardverdi.
Produksjon:
Trinn 3) Endre retningen
Du endrer retningen på grafen fra vertikal til horisontal.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity") +coord_flip()
Kode Forklaring
- Du kan kontrollere retningen på grafen med coord_flip ().
Produksjon:
Trinn 4) Endre fargen
Du kan skille fargene på stolpene i henhold til faktornivået til x-aksen.
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 etter grupper med fill = cyl-kartleggingen. R tar seg automatisk av fargene basert på nivåene av cyl variabel
Produksjon:
Trinn 5) Endre størrelsen
For å få grafen til å se penere ut, reduserer du stolpens 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 inne i geom_bar () styrer størrelsen på linjen. Større verdi øker bredden.
- Merk at du lagrer grafen i variabelgrafen. Du gjør det fordi neste trinn ikke endrer koden til variabelgrafen. Det forbedrer lesbarheten til koden.
Produksjon:
Trinn 6) Legg til etiketter i grafen
Det siste trinnet består i å legge til verdien av variabelen mean_mpg i etiketten.
graph +geom_text(aes(label = mean_mpg),hjust = 1.5,color = "white",size = 3) +theme_classic()
Kode Forklaring
- Funksjonen geom_text () er nyttig for å kontrollere det estetiske i teksten.
- label =: Legg til en etikett inne i stolpene
- mean_mpg: Bruk variabelen mean_mpg for etiketten
- hjust kontrollerer plasseringen av etiketten. Verdier stengt til 1 viser etiketten øverst på linjen, og høyere verdier fører etiketten til bunnen. Hvis retningen til grafen er loddrett, endrer du hjust til vjust.
- color = "white": Endre fargen på teksten. Her bruker du den hvite fargen.
- størrelse = 3: Angi størrelsen på teksten.
Produksjon:
Sammendrag
Et søylediagram er nyttig når x-aksen er en kategorisk variabel. Y-aksen kan enten være en telling eller en oppsummeringsstatistikk. Tabellen nedenfor oppsummerer hvordan du kan kontrollere søylediagram med ggplot2:
Objektiv |
kode |
---|---|
Telle |
ggplot(df, eas(x= factor(x1)) + geom_bar() |
Telle med annen farge på fyll |
ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar() |
Tell med grupper, stablet |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Telle med grupper, side om side |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar() |
Tell med grupper, stablet i% |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Verdier |
ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity") |