▶️ Tematyka

  • Załadowanie pakietów i pobranie zmiennych z Banku Danych Lokalnych
  • Konstrukcja wykresów dla pobranych zmiennych
    • kołowy
    • liniowy
    • rozrzutu
    • mapowy
  • Animacje dla danych z BDL
      • rozrzutu
      • liniowy
      • pudełkowy
      • histogram
      • facet_wrap
  • Animacje - Urodzenia i zgony na 1000 mieszkańców
      • rozrzutu (z efektami)
      • liniowy
      • pudełkowy
      • słupkowy
      • facet_wrap
  • Animacje - Mieszkania oraz ceny wybranych dóbr
      • rozrzutu (z efektami)
      • liniowy (z efektami)


📘 Załadowanie pakietów i pobranie zmiennych z Banku Danych Lokalnych

❕ Załadowanie pakietów

library(ggplot2)
library(gganimate)
library(plotly)
library(gifski)
library(dplyr)
library(bdl)

️✔️ Dane są pobierane z Banku Danych Lolalnych

🔗 Sklepy i stacje paliw - dane w BDL

Wyświetlenie informacji o zmiennych z BDL

search_variables("sklepy")
## # A tibble: 3 × 7
##      id subjectId n1              n2     level measureUnitId measureUnitName
##   <int> <chr>     <chr>           <chr>  <int>         <int> <chr>          
## 1   510 P1626     ogółem          sklepy     6            35 ob.            
## 2   511 P1626     sektor prywatny sklepy     6            35 ob.            
## 3 58964 P2323     sklepy          <NA>       3            35 ob.
get_variables("P2323")
## # A tibble: 2 × 6
##      id subjectId n1           level measureUnitId measureUnitName
##   <int> <chr>     <chr>        <int>         <int> <chr>          
## 1 58964 P2323     sklepy           3            35 ob.            
## 2 58965 P2323     stacje paliw     3            35 ob.

Pobranie danych z Banku Danych lokalnych - stacje paliw

get_data_by_variable("58965",year="2021",unitLevel=2)
## # A tibble: 16 × 8
##    id    name  year    val measureUnitId measureName attrId attributeDescription
##    <chr> <chr> <chr> <int> <chr>         <chr>        <int> <chr>               
##  1 0112… MAŁO… 2021    549 35            ob.              1 ""                  
##  2 0124… ŚLĄS… 2021    810 35            ob.              1 ""                  
##  3 0208… LUBU… 2021    283 35            ob.              1 ""                  
##  4 0230… WIEL… 2021    878 35            ob.              1 ""                  
##  5 0232… ZACH… 2021    429 35            ob.              1 ""                  
##  6 0302… DOLN… 2021    490 35            ob.              1 ""                  
##  7 0316… OPOL… 2021    185 35            ob.              1 ""                  
##  8 0404… KUJA… 2021    514 35            ob.              1 ""                  
##  9 0422… POMO… 2021    435 35            ob.              1 ""                  
## 10 0428… WARM… 2021    254 35            ob.              1 ""                  
## 11 0510… ŁÓDZ… 2021    695 35            ob.              1 ""                  
## 12 0526… ŚWIĘ… 2021    265 35            ob.              1 ""                  
## 13 0606… LUBE… 2021    485 35            ob.              1 ""                  
## 14 0618… PODK… 2021    448 35            ob.              1 ""                  
## 15 0620… PODL… 2021    239 35            ob.              1 ""                  
## 16 0714… MAZO… 2021   1169 35            ob.              1 ""

✔️ Konstrukcja wykresów dla pobranych zmiennych

Wykres kołowy - liczba stacji paliw

pie_plot(data_type ="variable" ,"58965", "2021", unitLevel = "1")

Wykres rozrzutu - liczba sklepów i stacji paliw

scatter_2var_plot(data_type = "variable" ,c("58964", "58965"), unitLevel = "2",year=2021)+labs(x='sklepy',y='stacje paliw')

Wykres liniowy - liczba sklepów

line_plot(data_type = "variable", unitParentId = "010000000000", varId = "58964",unitLevel=2)

Kartogram - liczba stacji paliw

generate_map(varId = "58965", year = "2021")

📘 Animacje dla danych z BDL

Przygotowanie animacji - sklepy i stacje paliw

dane=get_data_by_variable(c("72305","58964","58965"),unitLevel=2)
dane$year=as.numeric(dane$year)
dane=dane %>% filter(year >2003)
p <- ggplot(
  dane, 
  aes(x = val_58964, y=val_58965, size = val_72305/1000000, colour = name)
  ) +
  geom_point(show.legend = TRUE, alpha = 0.6) +
  scale_color_viridis_d() +
  scale_size(range = c(2, 10)) +
  labs(x = "liczba sklepów", y = "liczba stacji paliw")+
  labs(color="Województwo",size="Ludność w mln.")
p

Uruchomienie animacji

p + transition_time(year) + labs(title = "Rok: {format(frame_time,1,4)}")

Przygotowanie animacji - sklepy

anim_sklepy <- ggplot(dane, aes(factor(year),val_58964 )) +
  geom_boxplot(color=4,fill = "grey") +
  labs(x = "Rok", y = "Liczba sklepów")+
  transition_manual(year, cumulative = TRUE)

Uruchomienie animacji

animate(anim_sklepy, height = 5, width = 6,  units = "in", res = 150, end_pause=6,duration=15)

Przygotowanie animacji - stacje paliw

anim_sp <- ggplot(dane, aes(factor(year),val_58965 )) +
  geom_boxplot(color=4,fill = "grey") +
  labs(x = "Rok", y = "Liczba stacji paliw")+
  transition_manual(year, cumulative = TRUE)

Uruchomienie animacji

animate(anim_sp, height = 5, width = 6,  units = "in", res = 150, end_pause=6,duration=15)

Przygotowanie animacji - sklepy

anim_sklepy <- ggplot(dane, aes(factor(year),val_58964 )) +
  geom_boxplot() +
  labs(x = "Rok", y = "Liczba sklepów")+
  transition_manual(year, cumulative = TRUE)

Uruchomienie animacji

animate(anim_sklepy, height = 5, width = 6,  units = "in", res = 150, end_pause=6,duration=15)

Przygotowanie animacji - sklepy

p<-ggplot(dane, aes(val_58964/val_72305*1000, fill = name)) +
  geom_histogram()
p + transition_time(year) + labs(title = "Rok: {format(frame_time,1,4)}",x="Liczba sklepów na 1 tys. mieszkańców")

Przygotowanie animacji - sklepy i stacje paliw

dane=get_data_by_variable(c("72305","58964","58965"),unitLevel=2)
dane$year=as.numeric(dane$year)
dane=dane %>% filter(year >2003)

Przygotowanie animacji - stacje paliw

p <- ggplot(
  dane, 
  aes(x = val_58964, y=val_58965, size = val_72305, colour = name)
  ) +
  geom_point(show.legend = TRUE, alpha = 0.6) +
  scale_color_viridis_d() +
  scale_size(range = c(2, 10)) +
  labs(x = "Liczba sklepów", y = "Liczba stacji paliw")
p

Uruchomienie animacji

p + transition_time(year) + labs(title = "Rok: {format(frame_time,1,4)}")

Przygotowanie animacji - sklepy i stacje paliw

p + facet_wrap(~name) +
  transition_time(year) +
  labs(title = "Rok: {format(frame_time,1,4)}")

📘 Liczba urodzeń i zgonów na 1000 mieszkańców

Pobranie danych z Banku Danych Lokalnych

dane=get_data_by_variable(c("72305","63221","63215"),unitLevel=2)
dane$year=as.numeric(dane$year)
dane=dane %>% filter(year >2004)

Przygotowanie animacji - liczba urodzeń i zgonów na 1000 mieszkańców

p <- ggplot(
  dane, 
  aes(x = val_63221/val_72305*1000, y=val_63215/val_72305*1000, size = val_72305/1000000, colour = name)  ) +
  geom_point(show.legend = TRUE, alpha = 0.6) +
  scale_color_viridis_d() +
  scale_size(range = c(2, 10)) +
  labs(x = "Urodzenia żywe na 1000 mieszkańców", y = "Zgony  na 1000 mieszkańców")+
  labs(color="Województwo",size="Ludność w mln.")
p

Animacja

anim=p + transition_time(year) + labs(title = "Rok: {format(frame_time,1,4)}")
animate(anim, height = 8, width = 8,  units = "in", res = 150, end_pause=6,duration=15)

Animacja - inna forma uruchomienia

p + transition_time(year) + labs(title = "Rok: {format(frame_time,1,4)}")

Prezentacja w oknach (facet_wrap) - liczba urodzeń i zgonów na 1000 mieszkańców

p + facet_wrap(~name) +
  transition_time(year) +
  labs(title = "Rok: {format(frame_time,1,4)}")

Animacja - efekt shadow_wake)

p+ transition_time(year) +
  labs(title = "Rok: {format(frame_time,1,4)}") +
  shadow_wake(wake_length = 0.1, alpha = FALSE)