Ett stapeldiagram är ett utmärkt sätt att visa kategoriska variabler på x-axeln. Denna typ av diagram betecknar två aspekter i y-axeln.
- Den första räknar antalet förekomster mellan grupper.
- Den andra visar en sammanfattningsstatistik (min, max, genomsnitt och så vidare) för en variabel i y-axeln.
Du kommer att använda mtcars-datasetet med följande variabler:
- cyl: Antal cylindrar i bilen. Numerisk variabel
- am: Typ av överföring. 0 för automatisk och 1 för manuell. Numerisk variabel
- mpg: Miles per gallon. Numerisk variabel
I den här handledningen lär du dig
- Hur man skapar stapeldiagram
- Ändra färg på staplarna
- Ändra intensiteten
- Färg efter grupper
- Lägg till en grupp i staplarna
- Stapeldiagram i procent
- Sida vid sida stänger
- Histogram
Hur man skapar stapeldiagram
För att skapa diagram i R kan du använda biblioteket ggplot som skapar färdiga för publiceringsdiagram. Den grundläggande syntaxen för detta bibliotek är:
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 denna handledning är du intresserad av det geometriska objektet geom_bar () som skapar stapeldiagrammet.
Stapeldiagram: räkna
Din första graf visar frekvensen för cylindern med geom_bar (). Koden nedan är den mest grundläggande syntaxen.
library(ggplot2)# Most basic bar chartggplot(mtcars, aes(x = factor(cyl))) +geom_bar()
Kodförklaring
- Du skickar datasetet mtcars till ggplot.
- Inuti argumentet aes () lägger du till x-axeln som en faktorvariabel (cyl)
- + -Tecknet betyder att du vill att R ska fortsätta läsa koden. Det gör koden mer läsbar genom att bryta den.
- Använd geom_bar () för det geometriska objektet.
Produktion:
Obs : se till att du konverterar variablerna till en faktor, annars behandlar R variablerna som numeriska. Se exemplet nedan.
Anpassa diagrammet
Fyra argument kan skickas för att anpassa diagrammet:
- `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
Ändra färg på staplarna
Du kan ändra färg på staplarna. Observera att staplarnas färger är lika.
# Change the color of the barsggplot(mtcars, aes(x = factor(cyl))) +geom_bar(fill = "coral") +theme_classic()
Kodförklaring
- Staplarnas färger styrs av kartläggningen aes () inuti det geometriska objektet (dvs inte i ggplot ()). Du kan ändra färg med fyllningsargumenten. Här väljer du korallfärgen.
Produktion:
Du kan använda den här koden:
grDevices::colors()
för att se alla tillgängliga färger i R. Det finns cirka 650 färger.
Ändra intensiteten
Du kan öka eller minska intensiteten på staplarnas färg
# Change intensityggplot(mtcars,aes(factor(cyl))) +geom_bar(fill = "coral",alpha = 0.5) +theme_classic()
Kodförklaring
- För att öka / minska stapelns intensitet kan du ändra alfa-värdet. En stor alfa ökar intensiteten och låg alfa minskar intensiteten. alfa sträcker sig från 0 till 1. Om 1 är färgen densamma som paletten. Om 0 är färgen vit. Du väljer alfa = 0,1.
Produktion:
Färg efter grupper
Du kan ändra staplarnas färger, vilket betyder en annan färg för varje grupp. Till exempel har cyl variabel tre nivåer, sedan kan du plotta stapeldiagrammet med tre färger.
# Color by groupggplot(mtcars, aes(factor(cyl),fill = factor(cyl))) +geom_bar()
Kodförklaring
- Argumentet fill inuti aes () tillåter att ändra färg på stapeln. Du ändrar färg genom att ställa in fill = x-axel variabel. I ditt exempel är variabeln x-axeln cyl; fyll = faktor (cyl)
Produktion:
Lägg till en grupp i staplarna
Du kan dela upp y-axeln ytterligare baserat på en annan faktornivå. Du kan till exempel räkna antalet automatiska och manuella växellådor baserat på cylindertypen.
Du fortsätter enligt följande:
- Steg 1: Skapa dataramen med mtcars-dataset
- Steg 2: Märk am-variabeln med auto för automatisk växellåda och man för manuell växellåda. Konvertera am och cyl som en faktor så att du inte behöver använda faktor () i ggplot () -funktionen.
- Steg 3: Rita stapeldiagrammet för att räkna antalet överföringar per cylinder
library(dplyr)# Step 1data <- mtcars % > %#Step 2mutate(am = factor(am, labels = c("auto", "man")),cyl = factor(cyl))
Du har datamängden redo, du kan plotta diagrammet;
# Steg 3
ggplot(data, aes(x = cyl, fill = am)) +geom_bar() +theme_classic()
Kodförklaring
- Ggpplot () innehåller datauppsättningsdata och aes ().
- I aes () inkluderar du variabeln x-axel och vilken variabel som krävs för att fylla stapeln (dvs. am)
- geom_bar (): Skapa stapeldiagrammet
Produktion:
Mappningen fyller stapeln med två färger, en för varje nivå. Det är enkelt att ändra gruppen genom att välja andra faktorvariabler i datasetet.
Stapeldiagram i procent
Du kan visualisera fältet i procent i stället för råantalet.
# Stapeldiagram i procent
ggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = "fill") +theme_classic()
Kodförklaring
- Använd position = "fill" i argumentet geom_bar () för att skapa en grafik med procent i y-axeln.
Produktion:
Sida vid sida stänger
Det är lätt att plotta stapeldiagrammet med gruppvariabeln sida vid sida.
# Bar chart side by sideggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = position_dodge()) +theme_classic()
Kodförklaring
- position = position_dodge (): Berättar uttryckligen hur staplarna ska ordnas
Produktion:
Histogram
I den andra delen av stapeldiagramhandledningen kan du representera gruppen variabler med värden i y-axeln.
Ditt mål är att skapa en graf med den genomsnittliga milen per gallon för varje typ av cylinder. För att rita ett informativt diagram följer du dessa steg:
- Steg 1: Skapa en ny variabel med den genomsnittliga milen per gallon per cylinder
- Steg 2: Skapa ett grundläggande histogram
- Steg 3: Ändra orienteringen
- Steg 4: Ändra färg
- Steg 5: Ändra storlek
- Steg 6: Lägg till etiketter i diagrammet
Steg 1) Skapa en ny variabel
Du skapar en dataram med namnet data_histogram som helt enkelt returnerar de genomsnittliga milen per gallon med antalet cylindrar i bilen. Du kallar den här nya variabeln mean_mpg och du rundar medelvärdet med två decimaler.
# Steg 1
data_histogram <- mtcars % > %mutate(cyl = factor(cyl)) % > %group_by(cyl) % > %summarize(mean_mpg = round(mean(mpg), 2))
Steg 2) Skapa ett grundläggande histogram
Du kan plotta histogrammet. Det är inte redo att kommunicera för att levereras till klienten men ger oss en intuition om trenden.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity")
Kodförklaring
- Aes () har nu två variabler. Cylvariabeln hänvisar till x-axeln och medel_mpg är y-axeln.
- Du måste skicka argumentet stat = "identity" för att hänvisa variabeln i y-axeln till ett numeriskt värde. geom_bar använder stat = "bin" som standardvärde.
Produktion:
Steg 3) Ändra orienteringen
Du ändrar grafens orientering från vertikal till horisontell.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity") +coord_flip()
Kodförklaring
- Du kan styra orienteringen av diagrammet med coord_flip ().
Produktion:
Steg 4) Ändra färg
Du kan skilja på staplarnas färger beroende på faktornivån för x-axelns variabel.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity") +coord_flip() +theme_classic()
Kodförklaring
- Du kan plotta grafen efter grupper med mappningen fill = cyl. R tar hand om färgerna automatiskt baserat på nivåerna av cyl variabel
Produktion:
Steg 5) Ändra storlek
För att få grafen att se snyggare ut minskar du stapelns bredd.
graph <- ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity",width = 0.5) +coord_flip() +theme_classic()
Kodförklaring
- Breddargumentet inuti geom_bar () styr stapelns storlek. Större värde ökar bredden.
- Observera att du lagrar grafen i variabeldiagrammet. Du gör det eftersom nästa steg inte ändrar koden för variabeldiagrammet. Det förbättrar läsbarheten för koden.
Produktion:
Steg 6) Lägg till etiketter i diagrammet
Det sista steget består i att lägga till värdet på variabeln mean_mpg i etiketten.
graph +geom_text(aes(label = mean_mpg),hjust = 1.5,color = "white",size = 3) +theme_classic()
Kodförklaring
- Funktionen geom_text () är användbar för att kontrollera textens estetik.
- label =: Lägg till en etikett inuti staplarna
- mean_mpg: Använd variabeln mean_mpg för etiketten
- hjust kontrollerar placeringen av etiketten. Värden stängda till 1 visar etiketten längst upp i fältet och högre värden tar etiketten till botten. Om grafens orientering är vertikal, ändra hjust till vjust.
- color = "white": Ändra färg på texten. Här använder du den vita färgen.
- storlek = 3: Ställ in storleken på texten.
Produktion:
Sammanfattning
Ett stapeldiagram är användbart när x-axeln är en kategorisk variabel. Y-axeln kan antingen vara ett antal eller en sammanfattningsstatistik. Tabellen nedan sammanfattar hur man kontrollerar stapeldiagram med ggplot2:
Mål |
koda |
---|---|
Räkna |
ggplot(df, eas(x= factor(x1)) + geom_bar() |
Räkna med olika färg på fyllningen |
ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar() |
Räkna med grupper, staplade |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Räkna med grupper, sida vid sida |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar() |
Räkna med grupper, staplade i% |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Värden |
ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity") |