Stĺpcový graf a Histogram v R (s príkladom)

Obsah:

Anonim

Stĺpcový graf je skvelý spôsob, ako zobraziť kategorické premenné v osi x. Tento typ grafu označuje dva aspekty v osi y.

  1. Prvá počíta počet výskytov medzi skupinami.
  2. Druhá ukazuje súhrnnú štatistiku (min., Max., Priemer atď.) Premennej v osi y.

Použijete datovú sadu mtcars s nasledujúcimi premennými:

  • cyl: Číslo valca v automobile. Numerická premenná
  • am: Typ prenosu. 0 pre automatické a 1 pre manuálne. Numerická premenná
  • mpg: Míle na galón. Numerická premenná

V tomto návode sa naučíte

  • Ako vytvoriť stĺpcový graf
  • Zmeňte farbu pruhov
  • Zmeňte intenzitu
  • Vyfarbite podľa skupín
  • Pridajte skupinu do pruhov
  • Stĺpcový graf v percentách
  • Vedľa seba pruhy
  • Histogram

Ako vytvoriť stĺpcový graf

Na vytvorenie grafu v R môžete použiť knižnicu ggplot, ktorá vytvára grafy pripravené na publikáciu. Základná syntax tejto knižnice je:

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()`

V tomto tutoriáli vás zaujíma geometrický objekt geom_bar (), ktorý vytvára stĺpcový graf.

Stĺpcový graf: počet

Váš prvý graf zobrazuje frekvenciu valcov s funkciou geom_bar (). Kód uvedený nižšie je najzákladnejšou syntaxou.

library(ggplot2)# Most basic bar chartggplot(mtcars, aes(x = factor(cyl))) +geom_bar()

Vysvetlenie kódu

  • Dátovú množinu mtcars odovzdáte ggplot.
  • Vo vnútri argumentu aes () pridáte os x ako premennú faktora (cyl)
  • Znamienko + znamená, že chcete, aby kód R naďalej čítal. Zvyšuje čitateľnosť kódu jeho rozbitím.
  • Použite geom_bar () pre geometrický objekt.

Výkon:

Poznámka : nezabudnite premeniť premenné na faktor, inak R zaobchádza s premennými ako s číselnými. Pozri príklad nižšie.

Prispôsobte si graf

Na prispôsobenie grafu je možné predložiť štyri argumenty:

- `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

Zmeňte farbu pruhov

Môžete zmeniť farbu pruhov. Upozorňujeme, že farby pruhov sú podobné.

# Change the color of the barsggplot(mtcars, aes(x = factor(cyl))) +geom_bar(fill = "coral") +theme_classic()

Vysvetlenie kódu

  • Farby pruhov sú riadené mapovaním aes () vo vnútri geometrického objektu (tj. Nie v ggplot ()). Farbu môžete zmeniť pomocou argumentov výplne. Tu si vyberiete koralovú farbu.

Výkon:

Môžete použiť tento kód:

grDevices::colors() 

pre zobrazenie všetkých farieb dostupných v R. Existuje okolo 650 farieb.

Zmeňte intenzitu

Môžete zvýšiť alebo znížiť intenzitu farby pruhov

# Change intensityggplot(mtcars,aes(factor(cyl))) +geom_bar(fill = "coral",alpha = 0.5) +theme_classic()

Vysvetlenie kódu

  • Ak chcete zvýšiť / znížiť intenzitu pruhu, môžete zmeniť hodnotu alfa. Veľká alfa zvyšuje intenzitu a nízka alfa znižuje intenzitu. alfa sa pohybuje od 0 do 1. Ak je 1, potom je farba rovnaká ako paleta. Ak je 0, farba je biela. Zvolíte alfa = 0,1.

Výkon:

Vyfarbite podľa skupín

Môžete zmeniť farby pruhov, čo pre každú skupinu znamená jednu inú farbu. Napríklad premenná cyl má tri úrovne, potom môžete stĺpcový graf vykresliť tromi farbami.

# Color by groupggplot(mtcars, aes(factor(cyl),fill = factor(cyl))) +geom_bar()

Vysvetlenie kódu

  • Výplň argumentov vo vnútri aes () umožňuje meniť farbu pruhu. Farbu zmeníte nastavením výplne = premenná osi x. Vo vašom príklade je premenná osi x cyl; fill = factor (cyl)

Výkon:

Pridajte skupinu do pruhov

Ďalej môžete rozdeliť os y na základe inej úrovne faktora. Napríklad podľa typu valca môžete spočítať počet automatických a manuálnych prevodoviek.

Budete postupovať nasledovne:

  • Krok 1: Vytvorte dátový rámec s množinou údajov mtcars
  • Krok 2: Označte premennú am ako auto pre automatickú prevodovku a man pre manuálnu prevodovku. Konvertujte am a cyl ako faktor, aby ste vo funkcii ggplot () nemuseli používať faktor ().
  • Krok 3: Vykreslite stĺpcový graf a spočítajte počet prevodov podľa valca
library(dplyr)# Step 1data <- mtcars % > %#Step 2mutate(am = factor(am, labels = c("auto", "man")),cyl = factor(cyl))

Máte pripravený súbor údajov, môžete vykresliť graf;

# Krok 3

ggplot(data, aes(x = cyl, fill = am)) +geom_bar() +theme_classic()

Vysvetlenie kódu

  • Ggpplot () obsahuje údaje množiny údajov a aes ().
  • V aes () zahrniete premennú os x a ktorá premenná sa vyžaduje na vyplnenie pruhu (tj. Am)
  • geom_bar (): Vytvorte stĺpcový graf

Výkon:

Mapovanie vyplní panel dvoma farbami, jednou pre každú úroveň. Je ľahké zmeniť skupinu výberom ďalších premenných faktorov v množine údajov.

Stĺpcový graf v percentách

Lištu môžete zobraziť v percentách namiesto surového počtu.

# Stĺpcový graf v percentách

ggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = "fill") +theme_classic()

Vysvetlenie kódu

  • Použite position = "fill" v argumente geom_bar () na vytvorenie grafiky s percentom v osi y.

Výkon:

Vedľa seba pruhy

Je ľahké vykresliť stĺpcový graf so skupinovou premennou vedľa seba.

# Bar chart side by sideggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = position_dodge()) +theme_classic()

Vysvetlenie kódu

  • position = position_dodge (): Výslovne hovorí, ako usporiadať pruhy

Výkon:

Histogram

V druhej časti výučby stĺpcového grafu môžete reprezentovať skupinu premenných s hodnotami na osi y.

Vaším cieľom je vytvoriť graf s priemernou míľou na galón pre každý typ valca. Ak chcete nakresliť informatívny graf, postupujte podľa týchto krokov:

  • Krok 1: Vytvorte novú premennú s priemernou míľou na galón podľa valca
  • Krok 2: Vytvorte základný histogram
  • Krok 3: Zmeňte orientáciu
  • Krok 4: Zmeňte farbu
  • Krok 5: Zmeňte veľkosť
  • Krok 6: Pridajte do grafu štítky

Krok 1) Vytvorte novú premennú

Vytvoríte dátový rámec s názvom data_histogram, ktorý jednoducho vráti priemerné míle na galón podľa počtu valcov v automobile. Zavoláte túto novú premennú mean_mpg a priemer zaokrúhlite na dve desatinné miesta.

# Krok 1

data_histogram <- mtcars % > %mutate(cyl = factor(cyl)) % > %group_by(cyl) % > %summarize(mean_mpg = round(mean(mpg), 2))

Krok 2) Vytvorte základný histogram

Môžete vykresliť histogram. Nie je pripravená komunikovať, aby bola doručená klientovi, ale dáva nám intuíciu o tomto trende.

ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity")

Vysvetlenie kódu

  • Aes () má teraz dve premenné. Premenná cyl odkazuje na os x a mean_mpg je os y.
  • Ak chcete premennú v osi y označiť ako číselnú hodnotu, musíte zadať argument stat = "identity". geom_bar používa ako predvolenú hodnotu stat = "bin".

Výkon:

Krok 3) Zmeňte orientáciu

Orientáciu grafu zmeníte zo zvislej na vodorovnú.

ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity") +coord_flip()

Vysvetlenie kódu

  • Orientáciu grafu môžete ovládať pomocou funkcie coord_flip ().

Výkon:

Krok 4) Zmeňte farbu

Farby pruhov môžete rozlišovať podľa úrovne faktora premennej osi x.

ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity") +coord_flip() +theme_classic()

Vysvetlenie kódu

  • Graf môžete vykresliť do skupín pomocou mapovania fill = cyl. R sa automaticky stará o farby na základe úrovní premennej cyl

Výkon:

Krok 5) Zmeňte veľkosť

Ak chcete, aby bol graf krajší, zmenšíte šírku pruhu.

graph <- ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity",width = 0.5) +coord_flip() +theme_classic()

Vysvetlenie kódu

  • Argument width vo funkcii geom_bar () riadi veľkosť pruhu. Väčšia hodnota zväčšuje šírku.
  • Upozorňujeme, že graf ste uložili do variabilného grafu. Urobíte tak preto, lebo nasledujúci krok nezmení kód premenného grafu. Zlepšuje čitateľnosť kódu.

Výkon:

Krok 6) Pridajte do grafu štítky

Posledný krok spočíva v pridaní hodnoty premennej mean_mpg do štítka.

graph +geom_text(aes(label = mean_mpg),hjust = 1.5,color = "white",size = 3) +theme_classic()

Vysvetlenie kódu

  • Funkcia geom_text () je užitočná na ovládanie estetiky textu.
    • label =: Pridajte štítok do pruhov
    • mean_mpg: pre štítok použite premennú mean_mpg
  • hjust ovláda umiestnenie štítku. Hodnoty uzavreté k 1 zobrazia štítok v hornej časti panela a vyššie hodnoty štítok dolu. Ak je orientácia grafu zvislá, zmeňte nastavenie hjust na vjust.
  • color = "white": Zmena farby textu. Tu použijete bielu farbu.
  • size = 3: Nastaví veľkosť textu.

Výkon:

Zhrnutie

Stĺpcový graf je užitočný, keď je os x kategorickou premennou. Osa y môže byť buď štatistika počtu alebo súhrnná štatistika. V nasledujúcej tabuľke je zhrnuté, ako ovládať stĺpcový graf pomocou nástroja ggplot2:

Cieľ

kód

Gróf

ggplot(df, eas(x= factor(x1)) + geom_bar()

Počítajte s inou farbou výplne

ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar()

Počítajte so skupinami, naskladané

ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge())

Počítajte so skupinami, vedľa seba

ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar()

Počítajte so skupinami, zoradené v%

ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge())

Hodnoty

ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity")