Wykres słupkowy to świetny sposób na wyświetlanie zmiennych kategorialnych na osi x. Ten typ wykresu oznacza dwa aspekty na osi y.
- Pierwsza liczy liczbę wystąpień między grupami.
- 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") |