Sávdiagram & R hisztogram R-ben (példával)

Tartalomjegyzék:

Anonim

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.

  1. Az első megszámolja a csoportok közötti előfordulás számát.
  2. 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")