data("gapminder", package = "gapminder")
<- subset(gapminder, year==2007) dane2007
7 Typy wykresów
Typ wykresu | Typ (ang) | ggplot2 |
---|---|---|
Wykres rozrzutu | Scatter plot | geom_point() |
Wykres pudełkowy | Box plot | geom_boxplot() |
Histogram | Histogram | geom_histogram() |
Wykres gęstości | Density plot | geom_density() |
Wykres słupkowy | Bar plot | geom_bar(), geom_col() |
Wykres liniowy | Line plot | geom_line() |
7.1 Histogram
Graficzny sposób przedstawiania rozkładu liczebności dla wybranej zmiennej.
Wykres został poraz pierwszy wprowadzony przez Pearsona w 1895 roku.
Wykres powstaje w dwóch etapach:
- Zakres wartości danych dzielony jest na rozłączne przedziały o równej szerokości,
- Dla każdego przedziału rysowane są słupki o wysokości równej liczbie obserwacji w każdym przedziale.
Dobór przedziałów jest istotny. Różne przedziały mogą pokazać różną informację.
Pakiet
ggplot2
domyślnie definiuje przedział jako zakres/30. Ustawienia te można zmienić używając parametru *bins* (liczba przedziałów) lub *binwidth* (szerokość przedziału).
#HISTOGRAM
ggplot(dane2007, aes(x = gdpPercap)) + geom_histogram()
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#HISTOGRAM
ggplot(dane2007, aes(x = gdpPercap)) + geom_histogram(bins = 15)
#HISTOGRAM
ggplot(dane2007, aes(x = gdpPercap)) + geom_histogram(binwidth=10000)
Wykonać histogram dla zmiennej lifeExp dla 2007 roku. Ustawić szerokość przedziałów co 5 lat.
7.2 Wykres słupkowy
- stosowany do wizualizacji danych jakościowych - tj. częstość występowania zmiennej jakościowej (np. liczba państw na danym kontynencie).
ggplot(dane2007, aes(x = continent)) + geom_bar()
7.3 Wykres liniowy
#Oblicza średnią oczekiwaną długość życia dla poszczególnych lat
library(dplyr)
<- group_by(gapminder, year)
by_year <- summarize(by_year,
mean_lifeExp_by_year srednia=mean(lifeExp))
#Wykres liniowy
ggplot(data = mean_lifeExp_by_year, aes(x = year, y = srednia)) + geom_line()
Wykonać wykres liniowy pokazujący jak zmieniała się średnia wartość gpdPercap w poszczególnych latach?
7.4 Wykres rozrzutu
- stosowany do pokazania zależności między zmiennymi
ggplot(data=dane2007, aes(x=gdpPercap, y=lifeExp)) + geom_point()
Zwizualizować zależnośc między długością trwania życia a liczbą ludności w 2007 roku.
7.5 Wizualizacja statystyk opisowych
7.5.1 Wykres pudełkowy
Obrazuje podstawowe statystyki opisowe oraz wartości odstające :
- dolny kwartyl - dolna krawędz pudełka
- mediana - linia środkowa
- górny kwartyl - górna krawędź pudełka
- linie pionowe oznaczają najbardziej ekstremalne wartości (1,5IQR ponad krawędź pudełka, dolna to 1,5IQR poniżej wartości dolnej krawędzi pudełka)
- punkty oznaczają wartości odstające
ggplot(data = dane2007, aes(x = continent, y = lifeExp)) + geom_boxplot()
Wykonaj wykres pudełkowy w podziale na lata dla zmiennej gdpPercap.
Wykonaj wykres pudełkowy w podziale na lata dla zmiennej lifeExp.
7.6 stat_summary
Funkcja stat_summary
pozwala na wizualizację dowolnych statystyk opisowych bez konieczności wcześniejszego obliczania ich z wykorzystaniem np. funkcji dplyr::summarize()
.
- wizualizacja średnich wartości zmiennej lifeExp w poszczególnych latach
ggplot(data = gapminder, aes(x = year, y = lifeExp)) +
stat_summary(fun = "mean", geom = "line")
Wykonaj wykres pokazujący jak zmieniała się wartość średnia PKB na osobę (zmienna gdPercap) w latach 1952-2007.
- wizualizacja mediany dla zmiennej lifeExp w poszczególnych latach
ggplot(data = gapminder, aes(x = year, y = lifeExp)) +
stat_summary(fun = "median", geom = "line")
- wizualizacja wartości średniej (punkt), oraz minimalnej i maksymalnej
obiekt geometryczny pointrange wymaga zdefiniowania 3 funkcji: określającej położenie punktu (argument fun), oraz “wąsów” (argumenty fun.min oraz fun.max)
ggplot(data = gapminder, aes(x = year, y = lifeExp)) +
stat_summary(fun = mean,
geom = "pointrange",
fun.min = min,
fun.max = max)
Wykonaj wykres pokazujący jak zmieniała się wartość średnia, minimalna oraz maksymalna PKB na osobę (zmienna gdPercap) w latach 1952-2007.
- wizualizacja wartości średnich +/- odchylenie standardowe
ggplot(data = gapminder, aes(x = year, y = lifeExp)) +
stat_summary(fun = mean,
geom = "pointrange",
fun.max = function(x) mean(x) + sd(x),
fun.min = function(x) mean(x) - sd(x))
Wykonaj wykres pokazujący wartości śrendnie \(\pm\) odchylenie standardowe dla zmiennej gdpPercap.
- przebieg minimalnych i maksymalnych wartości lifeExp w latach 1952 - 2007
ggplot(gapminder, aes(x = year, y = lifeExp)) +
stat_summary(fun = mean, geom = "ribbon", fill = "blue",
fun.max = min, fun.min = max)
7.7 Warstwy - łączenie różnych typów wykresów
Pakiet ggplot2
pozwala także na łączenie ze sobą różnych typów wykresów.
- wizualizacja średniej zmienności oczekiwanej długości trwania życia w latach 1952-2007
#Oblicza średnią oczekiwaną długość życia dla poszczególnych lat
library(dplyr)
<- group_by(gapminder, year)
by_year <- summarize(by_year,
mean_lifeExp_by_year srednia=mean(lifeExp))
#Wykres liniowy
ggplot(data = mean_lifeExp_by_year, aes(x = year, y = srednia)) +
geom_line() +
geom_point()
Zwizualizuj średnią zmienność PKB na osobę w latach 1952-2007
- dodanie wartości średniej (czerwony punkt) do wykresu pudełkowego
ggplot(data = dane2007, aes(x = continent, y = lifeExp)) +
geom_boxplot() +
stat_summary(fun.y=mean, geom="point", shape=20, size=5, color="red", fill="red")
Warning: The `fun.y` argument of `stat_summary()` is deprecated as of ggplot2 3.3.0.
ℹ Please use the `fun` argument instead.
Wykonaj wykres pudełkowy dla zmiennej gdPercap w podziale na lata oraz dodaj do wykresu punkt oznaczający średnią wartość.
- dodanie wartości obserwacji do wykresu pudełkowego
ggplot(data = dane2007, aes(x = continent, y = lifeExp)) +
geom_boxplot() +
geom_point()
ggplot(data = dane2007, aes(x = continent, y = lifeExp)) +
geom_boxplot() +
geom_jitter()
Wykonaj wykres pudełkowy dla zmiennej lifeExp w podziale na lata. Dodaj do wykresu punkty oznaczające poszczególne obserwacje.
- wizualizacja statystyk opisowych długości trwnia życia (zmienna lifeExp) w Europie w latach 1952-2007
%>%
gapminder filter(continent == 'Europe') %>%
ggplot(aes(x = year, y = lifeExp)) +
stat_summary(fun = mean, geom = "ribbon", alpha = .3, fill = "#1E90FF", fun.max = min, fun.min = max) +
stat_summary(fun = mean, geom = "pointrange", fun.max = min, fun.min = max, color = "darkblue") +
stat_summary(fun = max, geom = "line", color = "black") +
stat_summary(fun = min, geom = "line", color = "black")
Zwizaulizuj statystyki opisowe (min, max, średnią) PKB na osobę (zmienna gdpPercap) w Azji w latach 1952-2007
7.7.1 Wizualizacja danych w grupach
Wizualizacja danych w podziale na grupy może być wykonana m.in za pomocą wykresu pudełkowego (geom_boxplot()), wykresu skrzypcowego (geom_violin()), lub za pomocą tzw. multiwykresów (facet_grid())
ggplot(data = dane2007, aes(x = continent, y = lifeExp)) +
geom_boxplot()
ggplot(data = dane2007, aes(x = continent, y = lifeExp)) +
geom_violin()
Wykonaj wykres skrzypcowy dla zmiennej gdPercap w podziale na kontynenty.
7.8 Multiwykresy
ggplot(data = dane2007, aes(x = gdpPercap, y = lifeExp)) +
geom_point() +
facet_wrap(~continent)
ggplot(data = dane2007, aes(x = lifeExp)) +
geom_histogram() +
facet_wrap(~continent)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Wykonaj multiwykres przedstawiający rozkład wartości zmiennej gdpPercap (na histogramie) w podziale na kontynenty.
7.9 Zapisywanie wykresów
<- ggplot(data = dane2007, aes(x = continent, y = lifeExp)) +
p geom_boxplot() +
labs(x = "Kontynent", y = "Oczekiwana długość trwania życia")
ggsave(filename = "Wykres.pdf", plot = p)
ggsave(filename = "Wykres.png", plot = p, dpi = 300)