# instalowanie niezbednych bibliotek
if (!requireNamespace("dplyr", quietly = TRUE)) {
install.packages("dplyr", repos = "https://cloud.r-project.org/")
}
if (!requireNamespace("knitr", quietly = TRUE)) {
install.packages("knitr")
}
if (!requireNamespace("DT", quietly = TRUE)) {
install.packages("DT")
}
if (!requireNamespace("ggplot2", quietly = TRUE)) {
install.packages("ggplot2")
}
if (!requireNamespace("reshape2", quietly = TRUE)) {
install.packages("reshape2")
}
if (!requireNamespace("tidyr", quietly = TRUE)) {
install.packages("tidyr")
}
if (!requireNamespace("plotly", quietly = TRUE)) {
install.packages("plotly")
}
# ładowanie niezbednych pakietow
library(dplyr)
library(knitr)
library(DT)
## Warning: pakiet 'DT' został zbudowany w wersji R 4.2.3
library(ggplot2)
## Warning: pakiet 'ggplot2' został zbudowany w wersji R 4.2.3
library(reshape2)
library(tidyr)
library(plotly)
#wczytywanie danych
data(starwars)
#tworzenie interaktywnej tabeli
data_selected = select(starwars, name, height, mass, birth_year, sex, species, eye_color, hair_color, skin_color)
datatable(data_selected,
options = list(
pageLength = 5, # Ustawienie liczby wierszy na stronę
scrollY = "300px", # Wysokość obszaru przewijania
scrollCollapse = TRUE, # Skalowanie suwaka przy zmniejszaniu rozmiaru tabeli
paging = TRUE # Włączenie paginacji
))
# Tworzenie wykresu ggplot dla danych z pakietu starwars
ggplot(starwars, aes(x = sex, fill = sex)) +
# Dodanie warstwy słupków do wykresu
geom_bar() +
# Dodanie tytułu oraz etykiet osi x i y dla wykresu
labs(title = "Proporcje płci postaci w Gwiezdnych Wojnach",
x = "Płeć",
y = "Liczba postaci") +
# Manualne definiowanie kolorów dla poszczególnych płci
scale_fill_manual(values = c("female" = "pink", "male" = "blue","NA" = "grey", "none" = "yellow", "hermaphroditic" = "purple"))
# Zliczenie wystąpień każdego gatunku
species_counts = starwars %>%
count(species) %>%
arrange(desc(n)) # Sortowanie malejąco według liczby wystąpień
# Wybieranie pięciu najczęstszych gatunków
top_species = species_counts %>%
slice_head(n = 5)
# Obliczenie liczby postaci w pozostałych gatunkach
other_count = sum(species_counts$n) - sum(top_species$n)
# Tworzenie ramki danych dla wykresu
plot_data = bind_rows(top_species, data.frame(species = "Reszta", n = other_count))
# Tworzenie etykiet z procentowym udziałem
plot_data = plot_data %>%
mutate(percent = n / sum(n) * 100) # Obliczenie procentowego udziału
# Stworzenie wykresu kołowego z granicami wizualnymi i etykietami procentowymi
ggplot(plot_data, aes(x = "", y = n, fill = species)) +
geom_bar(stat = "identity", width = 1, color = "black") + # Dodanie granic wizualnych
coord_polar("y", start = 0) +
labs(title = "Proporcje 5 najczęstszych gatunków postaci w Gwiezdnych Wojnach") +
theme_void() +
scale_fill_brewer(palette = "Set3") +
geom_text(aes(label = paste0(round(percent, 1), "%")), position = position_stack(vjust = 0.5)) # Dodanie etykiet procentowych
# Przygotowanie danych
films_characters <- starwars %>%
select(name, films) %>%
unnest(films) %>%
mutate(films = paste0("Episode ", films)) %>%
group_by(films) %>%
summarise(characters = paste(name, collapse = ", "))
# Wyświetlenie tabeli
knitr::kable(films_characters, caption = "Filmy i dopasowane postacie w Gwiezdnych Wojnach")
films | characters |
---|---|
Episode A New Hope | Luke Skywalker, C-3PO, R2-D2, Darth Vader, Leia Organa, Owen Lars, Beru Whitesun lars, R5-D4, Biggs Darklighter, Obi-Wan Kenobi, Wilhuff Tarkin, Chewbacca, Han Solo, Greedo, Jabba Desilijic Tiure, Wedge Antilles, Jek Tono Porkins, Raymus Antilles |
Episode Attack of the Clones | C-3PO, R2-D2, Owen Lars, Beru Whitesun lars, Obi-Wan Kenobi, Anakin Skywalker, Yoda, Palpatine, Boba Fett, Nute Gunray, Jar Jar Binks, Watto, Shmi Skywalker, Ayla Secura, Mace Windu, Ki-Adi-Mundi, Kit Fisto, Plo Koon, Mas Amedda, Gregar Typho, Cordé, Cliegg Lars, Poggle the Lesser, Luminara Unduli, Barriss Offee, Dormé, Dooku, Bail Prestor Organa, Jango Fett, Zam Wesell, Dexter Jettster, Lama Su, Taun We, Jocasta Nu, R4-P17, Wat Tambor, San Hill, Shaak Ti, Sly Moore, Padmé Amidala |
Episode Return of the Jedi | Luke Skywalker, C-3PO, R2-D2, Darth Vader, Leia Organa, Obi-Wan Kenobi, Chewbacca, Han Solo, Jabba Desilijic Tiure, Wedge Antilles, Yoda, Palpatine, Boba Fett, Lando Calrissian, Ackbar, Mon Mothma, Arvel Crynyd, Wicket Systri Warrick, Nien Nunb, Bib Fortuna |
Episode Revenge of the Sith | Luke Skywalker, C-3PO, R2-D2, Darth Vader, Leia Organa, Owen Lars, Beru Whitesun lars, Obi-Wan Kenobi, Anakin Skywalker, Wilhuff Tarkin, Chewbacca, Yoda, Palpatine, Nute Gunray, Ayla Secura, Mace Windu, Ki-Adi-Mundi, Kit Fisto, Eeth Koth, Adi Gallia, Saesee Tiin, Plo Koon, Poggle the Lesser, Luminara Unduli, Dooku, Bail Prestor Organa, R4-P17, Shaak Ti, Grievous, Tarfful, Raymus Antilles, Sly Moore, Tion Medon, Padmé Amidala |
Episode The Empire Strikes Back | Luke Skywalker, C-3PO, R2-D2, Darth Vader, Leia Organa, Obi-Wan Kenobi, Chewbacca, Han Solo, Wedge Antilles, Yoda, Palpatine, Boba Fett, IG-88, Bossk, Lando Calrissian, Lobot |
Episode The Force Awakens | Luke Skywalker, R2-D2, Leia Organa, Chewbacca, Han Solo, Ackbar, Finn, Rey, Poe Dameron, BB8, Captain Phasma |
Episode The Phantom Menace | C-3PO, R2-D2, Obi-Wan Kenobi, Anakin Skywalker, Jabba Desilijic Tiure, Yoda, Palpatine, Qui-Gon Jinn, Nute Gunray, Finis Valorum, Jar Jar Binks, Roos Tarpals, Rugor Nass, Ric Olié, Watto, Sebulba, Quarsh Panaka, Shmi Skywalker, Darth Maul, Ayla Secura, Dud Bolt, Gasgano, Ben Quadinaros, Mace Windu, Ki-Adi-Mundi, Kit Fisto, Eeth Koth, Adi Gallia, Saesee Tiin, Yarael Poof, Plo Koon, Mas Amedda, Ratts Tyerell, Padmé Amidala |
# Przygotowanie danych
starwars_filtered <- starwars %>% filter(!is.na(hair_color))
# Obliczenie liczby postaci dla każdego koloru włosów
hair_color_counts <- starwars_filtered %>%
count(hair_color) %>%
arrange(desc(n))
# Tworzenie kolorowego wykresu słupkowego
p <- ggplot(hair_color_counts, aes(x = reorder(hair_color, n), y = n, fill = hair_color)) +
geom_bar(stat = "identity") +
scale_fill_manual(values = rainbow(nrow(hair_color_counts))) +
labs(title = "Liczba postaci z konkretnym kolorem włosów w Star Wars",
x = "Kolor włosów",
y = "Liczba postaci") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
p
# Przygotowanie danych
starwars_filtered <- starwars %>% filter(!is.na(eye_color))
# Obliczenie liczby postaci dla każdego koloru oczu
eye_color_counts <- starwars_filtered %>%
count(eye_color) %>%
arrange(desc(n))
# Tworzenie kolorowego wykresu słupkowego
p <- ggplot(eye_color_counts, aes(x = reorder(eye_color, n), y = n, fill = eye_color)) +
geom_bar(stat = "identity") +
scale_fill_manual(values = hcl.colors(length(unique(eye_color_counts$eye_color)), palette = "Dark2")) +
labs(title = "Liczba postaci z konkretnym kolorem oczu w Star Wars",
x = "Kolor oczu",
y = "Liczba postaci") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
p