Wykres słupkowy & Histogram w R (z przykładem)

Spisie treści:

Anonim

Wykres słupkowy to świetny sposób na wyświetlanie zmiennych kategorialnych na osi x. Ten typ wykresu oznacza dwa aspekty na osi y.

  1. Pierwsza liczy liczbę wystąpień między grupami.
  2. Drugi pokazuje podsumowanie statystyk (min, max, średnia itd.) Zmiennej na osi y.

Będziesz używać zestawu danych mtcars z następującymi zmiennymi:

  • cyl: Numer cylindra w samochodzie. Zmienna liczbowa
  • am: Rodzaj transmisji. 0 dla automatycznego i 1 dla ręcznego. Zmienna liczbowa
  • mpg: mile na galon. Zmienna liczbowa

W tym samouczku dowiesz się

  • Jak stworzyć wykres słupkowy
  • Zmień kolor pasków
  • Zmień intensywność
  • Koloruj według grup
  • Dodaj grupę w paskach
  • Wykres słupkowy w procentach
  • Pręty obok siebie
  • Histogram

Jak stworzyć wykres słupkowy

Aby stworzyć wykres w R, możesz skorzystać z biblioteki ggplot, która tworzy gotowe do publikacji wykresy. Podstawowa składnia tej biblioteki to:

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

W tym samouczku interesuje Cię obiekt geometryczny geom_bar (), który tworzy wykres słupkowy.

Wykres słupkowy: liczba

Twój pierwszy wykres pokazuje częstotliwość cylindra z geom_bar (). Poniższy kod to najbardziej podstawowa składnia.

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

Objaśnienie kodu

  • Przekazujesz zestaw danych mtcars do ggplot.
  • Wewnątrz argumentu aes () dodajesz oś x jako zmienną czynnikową (cyl)
  • Znak + oznacza, że ​​chcesz, aby R nadal czytał kod. Czyni kod bardziej czytelnym, łamiąc go.
  • Użyj geom_bar () dla obiektu geometrycznego.

Wynik:

Uwaga : upewnij się, że konwertujesz zmienne na czynnik, w przeciwnym razie R traktuje zmienne jako numeryczne. Zobacz poniższy przykład.

Dostosuj wykres

W celu dostosowania wykresu można przekazać cztery 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

Zmień kolor pasków

Możesz zmienić kolor pasków. Zwróć uwagę, że kolory pasków są podobne.

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

Objaśnienie kodu

  • Kolory słupków są kontrolowane przez odwzorowanie aes () wewnątrz obiektu geometrycznego (tj. Nie w ggplot ()). Możesz zmienić kolor za pomocą argumentów wypełnienia. Tutaj wybierasz kolor koralowca.

Wynik:

Możesz użyć tego kodu:

grDevices::colors() 

aby zobaczyć wszystkie kolory dostępne w R. Dostępnych jest około 650 kolorów.

Zmień intensywność

Możesz zwiększyć lub zmniejszyć intensywność koloru pasków

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

Objaśnienie kodu

  • Aby zwiększyć / zmniejszyć intensywność paska, możesz zmienić wartość alfa. Duża wartość alfa zwiększa intensywność, a niska alfa zmniejsza intensywność. alfa mieści się w zakresie od 0 do 1. Jeśli 1, to kolor jest taki sam jak paleta. Jeśli 0, kolor jest biały. Wybierasz alfa = 0,1.

Wynik:

Koloruj według grup

Możesz zmienić kolory słupków, co oznacza jeden inny kolor dla każdej grupy. Na przykład zmienna cyl ma trzy poziomy, a następnie można wykreślić wykres słupkowy trzema kolorami.

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

Objaśnienie kodu

  • Argument wypełnienia wewnątrz aes () umożliwia zmianę koloru paska. Kolor można zmienić, ustawiając zmienną fill = oś x. W twoim przykładzie zmienną osi x jest cyl; fill = współczynnik (cyl)

Wynik:

Dodaj grupę w paskach

Możesz dalej podzielić oś Y na podstawie innego poziomu czynnika. Na przykład można policzyć liczbę automatycznych i manualnych skrzyń biegów na podstawie typu cylindra.

Będziesz postępować w następujący sposób:

  • Krok 1: Utwórz ramkę danych za pomocą zestawu danych mtcars
  • Krok 2: Oznacz zmienną am jako auto dla automatycznej skrzyni biegów i man dla manualnej skrzyni biegów. Zamień am i cyl jako współczynnik, aby nie trzeba było używać funkcji factor () w funkcji ggplot ().
  • Krok 3: Wykreśl wykres słupkowy, aby policzyć liczbę przekładni na cylinder
library(dplyr)# Step 1data <- mtcars % > %#Step 2mutate(am = factor(am, labels = c("auto", "man")),cyl = factor(cyl))

Masz gotowy zestaw danych, możesz wykreślić wykres;

# Krok 3

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

Objaśnienie kodu

  • Funkcja ggpplot () zawiera dane zestawu danych i aes ().
  • W aes () dołączasz zmienną oś x i która zmienna jest wymagana do wypełnienia słupka (np. Am)
  • geom_bar (): Utwórz wykres słupkowy

Wynik:

Mapowanie wypełni pasek dwoma kolorami, po jednym dla każdego poziomu. Zmiana grupy jest łatwa, wybierając inne zmienne czynnikowe w zbiorze danych.

Wykres słupkowy w procentach

Możesz wizualizować słupek w procentach zamiast surowej liczby.

# Wykres słupkowy w procentach

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

Objaśnienie kodu

  • Użyj position = "fill" w argumencie geom_bar (), aby utworzyć grafikę z procentami na osi y.

Wynik:

Pręty obok siebie

Wykres słupkowy można łatwo wykreślić obok zmiennej grupy.

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

Objaśnienie kodu

  • position = position_dodge (): Jawnie mówi, jak rozmieścić słupki

Wynik:

Histogram

W drugiej części samouczka dotyczącego wykresów słupkowych możesz przedstawić grupę zmiennych z wartościami na osi y.

Twoim celem jest utworzenie wykresu przedstawiającego średnią liczbę kilometrów na galon dla każdego typu butli. Aby narysować informacyjny wykres, wykonaj następujące kroki:

  • Krok 1: Utwórz nową zmienną ze średnią liczbą mil na galon na cylinder
  • Krok 2: Utwórz podstawowy histogram
  • Krok 3: Zmień orientację
  • Krok 4: Zmień kolor
  • Krok 5: Zmień rozmiar
  • Krok 6: Dodaj etykiety do wykresu

Krok 1) Utwórz nową zmienną

Tworzysz ramkę danych o nazwie data_histogram, która po prostu zwraca średnią liczbę mil na galon przez liczbę cylindrów w samochodzie. Nazywasz tę nową zmienną mean_mpg i zaokrąglasz średnią do dwóch miejsc po przecinku.

# Krok 1

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

Krok 2) Utwórz podstawowy histogram

Możesz wykreślić histogram. Nie jest gotowy do komunikowania się z klientem, ale daje nam intuicję co do trendu.

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

Objaśnienie kodu

  • Aes () ma teraz dwie zmienne. Zmienna cyl odnosi się do osi x, a mean_mpg to oś y.
  • Musisz przekazać argument stat = "identity", aby odnieść zmienną na osi Y jako wartość liczbową. geom_bar używa domyślnej wartości stat = "bin".

Wynik:

Krok 3) Zmień orientację

Zmieniasz orientację wykresu z pionowej na poziomą.

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

Objaśnienie kodu

  • Możesz sterować orientacją wykresu za pomocą koordynatora_flip ().

Wynik:

Krok 4) Zmień kolor

Możesz rozróżniać kolory słupków zgodnie z poziomem współczynnika zmiennej osi x.

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

Objaśnienie kodu

  • Możesz wykreślić wykres według grup za pomocą mapowania fill = cyl. R automatycznie dba o kolory na podstawie poziomów zmiennej cyl

Wynik:

Krok 5) Zmień rozmiar

Aby wykres wyglądał ładniej, zmniejsz szerokość paska.

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

Objaśnienie kodu

  • Argument szerokość wewnątrz geom_bar () kontroluje rozmiar słupka. Większa wartość zwiększa szerokość.
  • Zauważ, że przechowujesz wykres na wykresie zmiennych. Robisz to, ponieważ następny krok nie zmieni kodu wykresu zmiennej. Poprawia czytelność kodu.

Wynik:

Krok 6) Dodaj etykiety do wykresu

Ostatni krok polega na dodaniu wartości zmiennej mean_mpg w etykiecie.

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

Objaśnienie kodu

  • Funkcja geom_text () jest przydatna do kontrolowania estetyki tekstu.
    • label =: Dodaj etykietę wewnątrz słupków
    • mean_mpg: Użyj zmiennej mean_mpg jako etykiety
  • hjust kontroluje położenie etykiety. Wartości zamknięte do 1 powodują wyświetlenie etykiety u góry paska, a wyższe wartości powodują przesunięcie etykiety na dół. Jeśli orientacja wykresu jest pionowa, zmień hjust na vjust.
  • color = "white": zmień kolor tekstu. Tutaj używasz koloru białego.
  • size = 3: Ustaw rozmiar tekstu.

Wynik:

Podsumowanie

Wykres słupkowy jest przydatny, gdy oś x jest zmienną kategorialną. Oś Y może być liczbą lub statystyką podsumowującą. Poniższa tabela podsumowuje sposób kontrolowania wykresu słupkowego za pomocą ggplot2:

Cel

kod

Liczyć

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

Policz z innym kolorem wypełnienia

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

Policz z grupami, zestawione

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

Policz z grupami obok siebie

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

Policz z grupami, ułożone w%

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

Wartości

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