Az oszlopdiagram nagyszerű módja a kategorikus változók megjelenítésének az x tengelyben. Ez a típusú gráf két aspektust jelöl az y tengelyben.
- Az első megszámolja a csoportok közötti előfordulás számát.
- A második az y tengely változójának összefoglaló statisztikáját (min, max, átlag és így tovább) mutatja.
Az mtcars dataset with használatával a következő változókat használja:
- cyl: Az autó hengerének száma. Numerikus változó
- am: Az átvitel típusa. 0 az automatikus és 1 a kézi. Numerikus változó
- mpg: mérföld / gallon. Numerikus változó
Ebben az oktatóanyagban megtanulja
- Hogyan készítsünk oszlopdiagramot
- Változtassa meg a sávok színét
- Változtassa meg az intenzitást
- Színezés csoportok szerint
- Adjon hozzá egy csoportot a sávokhoz
- Sávdiagram százalékban
- Egymás melletti rudak
- Hisztogram
Hogyan készítsünk oszlopdiagramot
Grafikon létrehozásához R-ben használhatja a ggplot könyvtárat, amely közzétételre kész grafikonokat hoz létre. A könyvtár alapvető szintaxisa:
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()`
Ebben az oktatóanyagban a geom_bar () geometriai objektum érdekli, amely létrehozza az oszlopdiagramot.
Sávdiagram: számlálás
Az első grafikon a henger frekvenciáját mutatja a geom_bar () segítségével. Az alábbi kód a legalapvetőbb szintaxis.
library(ggplot2)# Most basic bar chartggplot(mtcars, aes(x = factor(cyl))) +geom_bar()
Kód Magyarázat
- Átadja az mtcars adatkészletet a ggplot-nak.
- Az aes () argumentumon belül hozzáadjuk az x tengelyt tényezőváltozóként (cyl)
- A + jel azt jelenti, hogy azt akarod, hogy R folyamatosan olvassa a kódot. Megtörés útján olvashatóbbá teszi a kódot.
- A geometriai objektumhoz használja a geom_bar () elemet.
Kimenet:
Megjegyzés : győződjön meg arról, hogy a változókat tényezővé konvertálja, különben R a változókat numerikusként kezeli. Lásd az alábbi példát.
Testreszabhatja a grafikont
A grafikon testreszabásához négy argumentum adható meg:
- `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
Változtassa meg a sávok színét
Megváltoztathatja a sávok színét. Vegye figyelembe, hogy a sávok színei mind hasonlóak.
# Change the color of the barsggplot(mtcars, aes(x = factor(cyl))) +geom_bar(fill = "coral") +theme_classic()
Kód Magyarázat
- A sávok színeit az aes () szabályozza a geometriai objektumon belül (azaz nem a ggplot-ban ()). A színt a kitöltési argumentumokkal módosíthatja. Itt választhatja ki a korall színét.
Kimenet:
Használhatja ezt a kódot:
grDevices::colors()
hogy az összes R szín elérhető legyen. Körülbelül 650 szín van.
Változtassa meg az intenzitást
Növelheti vagy csökkentheti a sávok színének intenzitását
# Change intensityggplot(mtcars,aes(factor(cyl))) +geom_bar(fill = "coral",alpha = 0.5) +theme_classic()
Kód Magyarázat
- A sáv intenzitásának növeléséhez / csökkentéséhez módosíthatja az alfa értékét. Egy nagy alfa növeli az intenzitást, az alacsony alfa pedig csökkenti az intenzitást. alfa tartománya 0 és 1 között van. Ha 1, akkor a szín megegyezik a palettával. Ha 0, a szín fehér. Az alfa = 0,1 értéket választja.
Kimenet:
Színezés csoportok szerint
Megváltoztathatja a sávok színét, minden csoportnak egy-egy külön színt jelent. Például a cyl változónak három szintje van, akkor az oszlopdiagramot három színnel ábrázolhatja.
# Color by groupggplot(mtcars, aes(factor(cyl),fill = factor(cyl))) +geom_bar()
Kód Magyarázat
- Az aes () belsejében található kitöltés lehetővé teszi a sáv színének megváltoztatását. A szín megváltoztatásához töltse ki az x tengely változót. Példádban az x tengely változó cyl; kitöltés = tényező (cil)
Kimenet:
Adjon hozzá egy csoportot a sávokhoz
Az y tengelyt tovább oszthatja egy másik tényező szintje alapján. Például megszámolhatja az automatikus és a kézi sebességváltó számát a henger típusa alapján.
Az alábbiak szerint jár el:
- 1. lépés: Hozza létre az adatkeretet az mtcars adatkészlettel
- 2. lépés: Jelölje az am változót az automatikus sebességváltóhoz és az embert a kézi sebességváltóhoz. Konvertálja tényezőként az am és a cyl értékeket, hogy ne kelljen a () tényezőt használni a ggplot () függvényben.
- 3. lépés: Ábrázolja az oszlopdiagramot a hengerenkénti átvitel számának megszámolásához
library(dplyr)# Step 1data <- mtcars % > %#Step 2mutate(am = factor(am, labels = c("auto", "man")),cyl = factor(cyl))
Készen áll az adatkészlet, megrajzolhatja a grafikont;
# 3. lépés
ggplot(data, aes(x = cyl, fill = am)) +geom_bar() +theme_classic()
Kód Magyarázat
- A ggpplot () tartalmazza az adatkészlet adatait és az aes () elemeket.
- Az aes () mezőbe belefoglalja az x tengely változót, és azt, hogy melyik változó szükséges a sáv kitöltéséhez (azaz am)
- geom_bar (): Hozzon létre oszlopdiagramot
Kimenet:
A leképezés két színnel tölti fel a sávot, mindegyik szinthez egyet. Könnyű megváltoztatni a csoportot más tényezőváltozók kiválasztásával az adatkészletben.
Sávdiagram százalékban
A sáv százalékban jeleníthető meg a nyers szám helyett.
# Sávdiagram százalékban
ggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = "fill") +theme_classic()
Kód Magyarázat
- Használja a geom_bar () argumentumban a position = "fill" értéket az y tengely százalékos grafikájának létrehozásához.
Kimenet:
Egymás melletti rudak
Könnyű ábrázolni az oszlopdiagramot a csoport változójával egymás mellett.
# Bar chart side by sideggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = position_dodge()) +theme_classic()
Kód Magyarázat
- position = position_dodge (): Kifejezetten megmondja, hogyan kell elrendezni a rudakat
Kimenet:
Hisztogram
A sávdiagram bemutatójának második részében a változók csoportját képviselheti az y tengelyben szereplő értékekkel.
A cél az, hogy hozzon létre egy grafikont az átlagos mérföld / gallon méretekről az egyes hengertípusokhoz. Informatív grafikon rajzolásához kövesse az alábbi lépéseket:
- 1. lépés: Hozzon létre egy új változót az átlagos mérföld / gallon / hengerenként
- 2. lépés: Hozzon létre egy alap hisztogramot
- 3. lépés: Változtassa meg a tájolást
- 4. lépés: Módosítsa a színt
- 5. lépés: Módosítsa a méretet
- 6. lépés: Adjon címkéket a grafikonhoz
1. lépés: Hozzon létre egy új változót
Létrehoz egy data_histogram nevű adatkeretet, amely egyszerűen visszaadja az átlagos gallononkénti mérföldeket az autó hengerek számával. Ezt az új változót mean_mpg-nek hívja, és két tizedessel kerekíti az átlagot.
# 1. lépés
data_histogram <- mtcars % > %mutate(cyl = factor(cyl)) % > %group_by(cyl) % > %summarize(mean_mpg = round(mean(mpg), 2))
2. lépés: Hozzon létre egy alap hisztogramot
Ábrázolhatja a hisztogramot. Nem áll készen arra, hogy kommunikáljon az ügyféllel, de megérzéseket ad a trendről.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity")
Kód Magyarázat
- Az aes () most két változóval rendelkezik. A cyl változó az x tengelyre vonatkozik, az átlag_mpg pedig az y tengelyre.
- Át kell adnia a stat = "identity" argumentumot, hogy az y tengely változóját numerikus értékként lehessen hivatkozni. A geom_bar a stat = "bin" -t használja alapértelmezett értékként.
Kimenet:
3. lépés: Változtassa meg a tájolást
A grafikon tájolását függőlegesről vízszintesre változtatja.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity") +coord_flip()
Kód Magyarázat
- A grafikon tájolását a coord_flip () segítségével szabályozhatja.
Kimenet:
4. lépés: Változtassa meg a színét
Meg lehet különböztetni a sávok színeit az x tengely változó tényező szintje szerint.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity") +coord_flip() +theme_classic()
Kód Magyarázat
- A grafikont csoportok szerint ábrázolhatja a fill = cyl leképezéssel. R automatikusan gondoskodik a színekről a cyl változó szintje alapján
Kimenet:
5. lépés: Módosítsa a méretet
Ahhoz, hogy a grafikon szebb legyen, csökkentse a sáv szélességét.
graph <- ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity",width = 0.5) +coord_flip() +theme_classic()
Kód Magyarázat
- A szélesség argumentum a geom_bar () belsejében szabályozza a sáv méretét. Nagyobb érték növeli a szélességet.
- Megjegyzés: a grafikont a változó grafikonban tárolja. Ezt azért teszi, mert a következő lépés nem változtatja meg a változó grafikon kódját. Javítja a kód olvashatóságát.
Kimenet:
6. lépés: Adjon címkéket a grafikonhoz
Az utolsó lépés az átlag_mpg változó értékének hozzáadása a címkéhez.
graph +geom_text(aes(label = mean_mpg),hjust = 1.5,color = "white",size = 3) +theme_classic()
Kód Magyarázat
- A geom_text () függvény hasznos a szöveg esztétikájának vezérléséhez.
- label =: Adjon hozzá egy címkét a sávok belsejébe
- mean_mpg: Használja a mean_mpg változót a címkéhez
- hjust vezérli a címke helyét. Az 1-ig bezárt értékek a sáv tetején jelenítik meg a címkét, a magasabb értékek pedig a címkét alulra viszik. Ha a grafikon tájolása függőleges, akkor változtassa meg a hjust értéket vjust értékre.
- color = "white": A szöveg színének megváltoztatása. Itt használja a fehér színt.
- size = 3: A szöveg méretének beállítása.
Kimenet:
Összegzés
Az oszlopdiagram akkor hasznos, ha az x tengely kategorikus változó. Az y tengely lehet számolás vagy összefoglaló statisztika. Az alábbi táblázat összefoglalja az oszlopdiagram vezérlését a ggplot2 segítségével:
Célkitűzés |
kód |
---|---|
Számol |
ggplot(df, eas(x= factor(x1)) + geom_bar() |
Számoljon különböző színű töltelékkel |
ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar() |
Számoljon csoportokkal, halmozottan |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Számoljon csoportokkal, egymás mellett |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar() |
Számlálás csoportokkal,% -ba rakva |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Értékek |
ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity") |