Ściągnij zbiór rossmann.xlsx i umieść w folderze data
Utwórz nowy skrypt i wczytaj biblioteki tidyverse i readxl
Wczytaj zbiór danych rossmann.xlsx do pamięci R
Za pomocą funkcji filter wybierz jeden ze sklepów
10:00
plot() - wykres punktowy/liniowy
hist() - histogram
barplot() - wykres kolumnowy
boxplot() - wykres pudełkowy
nazwy zmiennych nie powinny zawierać polskich liter i spacji
nazwy zmiennych nie powinny zaczynać się od liczby
surowe dane zwykle nie posiadają nazw kolumn przystosowanych do przetwarzania przez komputer
ten problem rozwiązuje pakiet janitor i funkcja clean_names():
zbior <- janitor::clean_names(zbior)library(tidyverse)library(readxl)rossmann <- read_xlsx("../data/rossmann.xlsx")sklep11 <- rossmann %>% filter(sklep_id == 11, czy_otwarty == "Tak")plot(sklep11$sprzedaz, sklep11$liczba_klientow)

ggplot2Tworzenie wykresów poprzez dodawanie (+) kolejnych warstw.
Pierwsza wersja 10.06.2007
ggplot(data = zbior_danych, aes(x = cecha1, y=cecha2))
x - zawartość osi x
y - zawartość osi y
fill - wypełnienie
size - rozmiar
color - kolor
shape - kształt
geom_pointObowiązkowe argumenty aes:
x
y
ggplot(sklep11, aes(x=liczba_klientow, y=sprzedaz)) + geom_point()

xlim(0,10) - minimum i maksimum osi x
ylim(-5,5) - minimum i maksimum osi y
xlab("tekst") - etykieta osi x
ylab("tekst") - etykieta osi y
ggtitle("tekst") - tytuł wykresu
labs(subtitle = "tekst") - podtytuł
labs(caption = "tekst") - podpis
ggplot(sklep11, aes(x=liczba_klientow, y=sprzedaz)) + geom_point() + xlab("Liczba klientów") + ylab("Sprzedaż")

ggplot(sklep11, aes(x=liczba_klientow, y=sprzedaz)) + geom_point() + xlab("Liczba klientów") + ylab("Sprzedaż") + ylim(0,20000)

ggplot(sklep11, aes(x=liczba_klientow, y=sprzedaz)) + geom_point() + xlab("Liczba klientów") + ylab("Sprzedaż") + ylim(0,20000) + ggtitle("Sprzedaż i liczba klientów w sklepie nr 11")

Powyższe motywy są zaimplementowane w pakiecie ggplot2, ale można także skorzystać z dodatkowych pakietów: ggthemes, bbplot, xkcd.
Istnieje także możliwość stworzenia własnego motywu.
Przetestuj kilka motywów i wybierz jeden z nich.
02:00
w zakładce Plots -> Export
funkcja ggsave()
filename - nazwa pliku z rozszerzeniem (png, pdf)
width i height - szerokość i wysokość (domyślnie w calach)
scale - skalowanie po zmianie rozdzielczości
dpi - liczba punktów na cal
W przypadku generowania plików pdf z polskimi znakami trzeb dodać argument device = cairo_pdf.
Funkcja ggsave() zapisuje ostatnio stworzony wykres. Wątek na temat zachowania tej funkcji.
ggplot(sklep11, aes(x=liczba_klientow, y=sprzedaz)) + geom_point() + xlab("Liczba klientów") + ylab("Sprzedaż") + ylim(0,20000) + ggtitle("Sprzedaż i liczba klientów w sklepie nr 11") + theme_light() ggsave("figs/sklep11.png", width = 12, height = 10, scale = 0.5, dpi = 1200)

ggplot(sklep11, aes(x=liczba_klientow, y=sprzedaz, color=czy_promocja)) + geom_point() + xlab("Liczba klientów") + ylab("Sprzedaż") + ylim(0,20000) + ggtitle("Sprzedaż i liczba klientów w sklepie nr 11") + theme_light()

ggplot(sklep11, aes(x=liczba_klientow, y=sprzedaz, color=czy_promocja)) + geom_point() + xlab("Liczba klientów") + ylab("Sprzedaż") + scale_color_discrete(name = "Promocja?") + ylim(0,20000) + ggtitle("Sprzedaż i liczba klientów w sklepie nr 11") + theme_light()

ggplot(sklep11, aes(x=liczba_klientow, y=sprzedaz, color=czy_promocja)) + geom_point() + xlab("Liczba klientów") + ylab("Sprzedaż") + scale_color_discrete(name = "Promocja?") + ylim(0,20000) + ggtitle("Sprzedaż i liczba klientów w sklepie nr 11") + theme_light()

ggplot(sklep11, aes(x=liczba_klientow, y=sprzedaz, color=czy_promocja)) + geom_point() + xlab("Liczba klientów") + ylab("Sprzedaż") + scale_color_discrete(name = "Promocja?") + ylim(0,20000) + ggtitle("Sprzedaż i liczba klientów w sklepie nr 11") + theme_light() + theme(legend.position = "bottom")

ggplot(sklep11, aes(x=liczba_klientow, y=sprzedaz, color=czy_promocja)) + geom_point() + xlab("Liczba klientów") + ylab("Sprzedaż") + scale_color_discrete(name = "Promocja?") + ylim(0,20000) + ggtitle("Sprzedaż i liczba klientów w sklepie nr 11") + theme_light() + theme(legend.position = "inside", legend.position.inside = c(0.1,0.8))

plotly to biblioteka do wykresów, która posiada swoją własną składnię.
Za pomocą funkcji ggplotly() można zamienić każdy wykres ggplot2 na wykres interaktywny.
p <- ggplot(sklep11, aes(x=liczba_klientow, y=sprzedaz, color=czy_promocja)) + geom_point() + xlab("Liczba klientów") + ylab("Sprzedaż") + scale_color_discrete(name = "Promocja?") + ylim(0,20000) + ggtitle("Sprzedaż i liczba klientów w sklepie nr 11") + theme_light()plotly::ggplotly(p)
geom_histogramObowiązkowe argumenty aes:
Domyślnie tworzy zawsze 30 słupków.
ggplot(sklep11, aes(x = liczba_klientow)) + geom_histogram()
Domyślnie tworzonych jest 30 słupków.

ggplot(sklep11, aes(x = liczba_klientow)) + geom_histogram(bins = 12)

ggplot(sklep11, aes(x = liczba_klientow)) + geom_histogram(binwidth = 100)

ggplot(sklep11, aes(x = liczba_klientow, fill = czy_promocja)) + geom_histogram(binwidth = 100)

ggplot(sklep11, aes(x = liczba_klientow)) + geom_histogram(binwidth = 100, fill = "blue")

ggplot(sklep11, aes(x = liczba_klientow)) + geom_density(fill = "blue")

geom_bar / geom_colgeom_bar - funkcja sama oblicza wartości do wyświetlenia na podstawie zbioru danych jednostkowych
geom_col - funkcja otrzymuje już obliczone wartości (dane zagregowane)
geom_barggplot(sklep11, aes(x = czy_promocja)) + geom_bar()

geom_barggplot(sklep11, aes(x = czy_promocja)) + geom_bar(fill = "#99d8c9")

geom_colsklep_promocja <- sklep11 %>% count(czy_promocja)ggplot(sklep_promocja, aes(x = czy_promocja, y = n)) + geom_col()

facet_wrapggplot(sklep11, aes(x=liczba_klientow, y=sprzedaz)) + geom_point() + facet_wrap( ~ czy_promocja)

facet_wrapggplot(sklep11, aes(x=liczba_klientow, y=sprzedaz)) + geom_point() + facet_wrap(dzien_tyg ~ czy_promocja)

facet_wrapggplot(sklep11, aes(x=liczba_klientow, y=sprzedaz)) + geom_point() + facet_wrap(dzien_tyg ~ czy_promocja, nrow = 2)

facet_gridggplot(sklep11, aes(x=liczba_klientow, y=sprzedaz)) + geom_point() + facet_grid(dzien_tyg ~ czy_promocja)

geom_boxplotObowiązkowe argumenty aes:
x - zmienna grupująca (tekstowa/faktor)
y - zmienna analizowana
ggplot(sklep11, aes(x=czy_promocja, y=sprzedaz)) + geom_boxplot()

ggplot(sklep11, aes(x=czy_promocja, y=sprzedaz)) + geom_boxplot() + coord_flip()

Stwórz następujący wykres

10:00
Wykonaj zadania zamieszczone na stronie.
Bootcamp z zadaniami z przetwarzania i wizualizacji: https://r-bootcamp.netlify.app/
Keyboard shortcuts
| ↑, ←, Pg Up, k | Go to previous slide |
| ↓, →, Pg Dn, Space, j | Go to next slide |
| Home | Go to first slide |
| End | Go to last slide |
| Number + Return | Go to specific slide |
| b / m / f | Toggle blackout / mirrored / fullscreen mode |
| c | Clone slideshow |
| p | Toggle presenter mode |
| t | Restart the presentation timer |
| ?, h | Toggle this help |
| Esc | Back to slideshow |