You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Data-Science-For-Beginners/translations/sl/3-Data-Visualization/R/09-visualization-quantities
leestott 8dcd54c138
🌐 Update translations via Co-op Translator
3 weeks ago
..
README.md 🌐 Update translations via Co-op Translator 3 weeks ago
assignment.md 🌐 Update translations via Co-op Translator 3 weeks ago

README.md

Vizualizacija količin

 Sketchnote by (@sketchthedocs)
Vizualizacija količin - Sketchnote by @nitya

V tej lekciji boste raziskali, kako uporabiti nekatere izmed številnih knjižnic paketov v R-ju za ustvarjanje zanimivih vizualizacij, ki se osredotočajo na koncept količine. Z uporabo očiščenega nabora podatkov o pticah iz Minnesote lahko odkrijete številna zanimiva dejstva o lokalni divjini.

Predlekcijski kviz

Opazovanje razpona kril z ggplot2

Odlična knjižnica za ustvarjanje tako preprostih kot sofisticiranih grafov in diagramov različnih vrst je ggplot2. Na splošno proces risanja podatkov s temi knjižnicami vključuje identifikacijo delov vašega podatkovnega okvira, ki jih želite obdelati, izvedbo potrebnih transformacij podatkov, dodelitev vrednosti za osi x in y, odločitev o vrsti grafa ter prikaz grafa.

ggplot2 je sistem za deklarativno ustvarjanje grafike, ki temelji na "The Grammar of Graphics". Grammar of Graphics je splošna shema za vizualizacijo podatkov, ki razdeli grafe na semantične komponente, kot so lestvice in sloji. Z drugimi besedami, enostavnost ustvarjanja grafov za enovariatne ali večvariatne podatke z malo kode naredi ggplot2 najbolj priljubljen paket za vizualizacije v R-ju. Uporabnik pove ggplot2, kako preslikati spremenljivke na estetiko, katere grafične primitivne elemente uporabiti, nato pa ggplot2 poskrbi za ostalo.

Graf = Podatki + Estetika + Geometrija

  • Podatki se nanašajo na nabor podatkov
  • Estetika označuje spremenljivke, ki jih preučujemo (spremenljivki x in y)
  • Geometrija se nanaša na vrsto grafa (črtni graf, stolpični graf itd.)

Izberite najboljšo geometrijo (vrsto grafa) glede na vaše podatke in zgodbo, ki jo želite povedati skozi graf.

  • Za analizo trendov: črta, stolpec
  • Za primerjavo vrednosti: stolpec, tortni diagram, razsevni diagram
  • Za prikaz, kako deli sestavljajo celoto: tortni diagram
  • Za prikaz porazdelitve podatkov: razsevni diagram, stolpec
  • Za prikaz odnosov med vrednostmi: črta, razsevni diagram, mehurčasti diagram

Oglejte si tudi ta opisni priročnik za ggplot2.

Ustvarite črtni graf za vrednosti razpona kril ptic

Odprite konzolo R in uvozite nabor podatkov.

Opomba: Nabor podatkov je shranjen v korenu tega repozitorija v mapi /data.

Uvozimo nabor podatkov in si ogledamo glavo (prvih 5 vrstic) podatkov.

birds <- read.csv("../../data/birds.csv",fileEncoding="UTF-8-BOM")
head(birds)

Glava podatkov vsebuje mešanico besedila in številk:

Ime ZnanstvenoIme Kategorija Red Družina Rod StatusOhranjanja MinDolžina MaxDolžina MinTelesnaMasa MaxTelesnaMasa MinRazponKril MaxRazponKril
0 Črno-trebušna piščalka Dendrocygna autumnalis Race/Gosi/Vodna ptica Anseriformes Anatidae Dendrocygna LC 47 56 652 1020 76 94
1 Rjava piščalka Dendrocygna bicolor Race/Gosi/Vodna ptica Anseriformes Anatidae Dendrocygna LC 45 53 712 1050 85 93
2 Snežna gos Anser caerulescens Race/Gosi/Vodna ptica Anseriformes Anatidae Anser LC 64 79 2050 4050 135 165
3 Rossova gos Anser rossii Race/Gosi/Vodna ptica Anseriformes Anatidae Anser LC 57.3 64 1066 1567 113 116
4 Velika bela-frontna gos Anser albifrons Race/Gosi/Vodna ptica Anseriformes Anatidae Anser LC 64 81 1930 3310 130 165

Začnimo z risanjem nekaterih numeričnih podatkov z osnovnim črtnim grafom. Recimo, da želite pogled na največji razpon kril teh zanimivih ptic.

install.packages("ggplot2")
library("ggplot2")
ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) +
  geom_line() 

Tukaj namestite paket ggplot2 in ga nato uvozite v delovni prostor z ukazom library("ggplot2"). Za risanje grafa v ggplot se uporablja funkcija ggplot(), kjer določite nabor podatkov ter spremenljivki x in y kot atribute. V tem primeru uporabimo funkcijo geom_line(), saj želimo narisati črtni graf.

MaxWingspan-lineplot

Kaj takoj opazite? Zdi se, da obstaja vsaj en odstopajoč podatek - to je kar razpon kril! Razpon kril več kot 2000 centimetrov pomeni več kot 20 metrov - ali v Minnesoti živijo pterodaktili? Raziščimo.

Čeprav bi lahko hitro razvrstili podatke v Excelu, da bi našli te odstopajoče podatke, ki so verjetno tipkarske napake, nadaljujte proces vizualizacije z delom znotraj grafa.

Dodajte oznake na os x, da pokažete, za katere ptice gre:

ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) +
  geom_line() +
  theme(axis.text.x = element_text(angle = 45, hjust=1))+
  xlab("Birds") +
  ylab("Wingspan (CM)") +
  ggtitle("Max Wingspan in Centimeters")

Kot oznak določimo v theme in določimo oznake osi x in y v xlab() in ylab(). Funkcija ggtitle() doda ime grafu.

MaxWingspan-lineplot-improved

Tudi z rotacijo oznak na 45 stopinj je preveč podatkov za branje. Poskusimo drugačno strategijo: označimo samo odstopajoče podatke in postavimo oznake znotraj grafa. Uporabite razsevni diagram, da ustvarite več prostora za označevanje:

ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) +
  geom_point() +
  geom_text(aes(label=ifelse(MaxWingspan>500,as.character(Name),'')),hjust=0,vjust=0) + 
  theme(axis.title.x=element_blank(), axis.text.x=element_blank(), axis.ticks.x=element_blank())
  ylab("Wingspan (CM)") +
  ggtitle("Max Wingspan in Centimeters") + 

Kaj se tukaj dogaja? Uporabili ste funkcijo geom_point() za risanje razsevnih točk. S tem ste dodali oznake za ptice, katerih MaxWingspan > 500, in tudi skrili oznake na osi x, da zmanjšate natrpanost grafa.

Kaj odkrijete?

MaxWingspan-scatterplot

Filtrirajte svoje podatke

Tako plešasti orel kot prerijski sokol, čeprav sta verjetno zelo veliki ptici, sta očitno napačno označena, z dodatno ničlo pri največjem razponu kril. Malo verjetno je, da boste srečali plešastega orla z razponom kril 25 metrov, vendar če ga, nam prosim sporočite! Ustvarimo nov podatkovni okvir brez teh dveh odstopajočih podatkov:

birds_filtered <- subset(birds, MaxWingspan < 500)

ggplot(data=birds_filtered, aes(x=Name, y=MaxWingspan,group=1)) +
  geom_point() +
  ylab("Wingspan (CM)") +
  xlab("Birds") +
  ggtitle("Max Wingspan in Centimeters") + 
  geom_text(aes(label=ifelse(MaxWingspan>500,as.character(Name),'')),hjust=0,vjust=0) +
  theme(axis.text.x=element_blank(), axis.ticks.x=element_blank())

Ustvarili smo nov podatkovni okvir birds_filtered in nato narisali razsevni diagram. Z odstranitvijo odstopajočih podatkov so vaši podatki zdaj bolj skladni in razumljivi.

MaxWingspan-scatterplot-improved

Zdaj, ko imamo vsaj očiščen nabor podatkov glede razpona kril, odkrijmo več o teh pticah.

Čeprav črtni in razsevni diagrami lahko prikazujejo informacije o vrednostih podatkov in njihovih porazdelitvah, želimo razmisliti o vrednostih, ki so inherentne v tem naboru podatkov. Lahko ustvarite vizualizacije za odgovore na naslednja vprašanja o količinah:

Koliko kategorij ptic obstaja in kakšno je njihovo število?
Koliko ptic je izumrlih, ogroženih, redkih ali pogostih?
Koliko jih je v različnih rodovih in redih po Linnaeusovi terminologiji?

Raziskovanje stolpičnih grafov

Stolpični grafi so praktični, ko morate prikazati skupine podatkov. Raziskujmo kategorije ptic, ki obstajajo v tem naboru podatkov, da vidimo, katera je najpogostejša po številu.
Ustvarimo stolpični graf na filtriranih podatkih.

install.packages("dplyr")
install.packages("tidyverse")

library(lubridate)
library(scales)
library(dplyr)
library(ggplot2)
library(tidyverse)

birds_filtered %>% group_by(Category) %>%
  summarise(n=n(),
  MinLength = mean(MinLength),
  MaxLength = mean(MaxLength),
  MinBodyMass = mean(MinBodyMass),
  MaxBodyMass = mean(MaxBodyMass),
  MinWingspan=mean(MinWingspan),
  MaxWingspan=mean(MaxWingspan)) %>% 
  gather("key", "value", - c(Category, n)) %>%
  ggplot(aes(x = Category, y = value, group = key, fill = key)) +
  geom_bar(stat = "identity") +
  scale_fill_manual(values = c("#D62728", "#FF7F0E", "#8C564B","#2CA02C", "#1F77B4", "#9467BD")) +                   
  xlab("Category")+ggtitle("Birds of Minnesota")

V naslednjem odlomku namestimo paketa dplyr in lubridate, da pomagata pri manipulaciji in grupiranju podatkov za risanje zloženega stolpičnega grafa. Najprej grupirate podatke po Category ptic in nato povzamete stolpce MinLength, MaxLength, MinBodyMass, MaxBodyMass, MinWingspan, MaxWingspan. Nato narišete stolpični graf z uporabo paketa ggplot2 in določite barve za različne kategorije ter oznake.

Stacked bar chart

Ta stolpični graf je neberljiv, ker je preveč nepovezanih podatkov. Izbrati morate samo podatke, ki jih želite prikazati, zato si oglejmo dolžino ptic glede na njihovo kategorijo.

Filtrirajte svoje podatke, da vključite samo kategorijo ptic.

Ker je kategorij veliko, lahko ta graf prikažete vertikalno in prilagodite njegovo višino, da upoštevate vse podatke:

birds_count<-dplyr::count(birds_filtered, Category, sort = TRUE)
birds_count$Category <- factor(birds_count$Category, levels = birds_count$Category)
ggplot(birds_count,aes(Category,n))+geom_bar(stat="identity")+coord_flip()

Najprej preštejete unikatne vrednosti v stolpcu Category in jih nato razvrstite v nov podatkovni okvir birds_count. Te razvrščene podatke nato razvrstite na isti ravni, da so narisani v razvrščenem vrstnem redu. Z uporabo ggplot2 nato narišete podatke v stolpičnem grafu. Funkcija coord_flip() nariše horizontalne stolpce.

category-length

Ta stolpični graf prikazuje dober pogled na število ptic v vsaki kategoriji. Na prvi pogled vidite, da je največ ptic v tej regiji v kategoriji Race/Gosi/Vodna ptica. Minnesota je 'dežela 10.000 jezer', zato to ni presenetljivo!

Poskusite nekaj drugih štetij na tem naboru podatkov. Vas kaj preseneti?

Primerjava podatkov

Poskusite različne primerjave grupiranih podatkov z ustvarjanjem novih osi. Poskusite primerjavo največje dolžine ptice glede na njeno kategorijo:

birds_grouped <- birds_filtered %>%
  group_by(Category) %>%
  summarise(
  MaxLength = max(MaxLength, na.rm = T),
  MinLength = max(MinLength, na.rm = T)
           ) %>%
  arrange(Category)
  
ggplot(birds_grouped,aes(Category,MaxLength))+geom_bar(stat="identity")+coord_flip()

Grupiramo podatke birds_filtered po Category in nato narišemo stolpični graf.

comparing data

Tukaj ni nič presenetljivega: kolibriji imajo najmanjšo največjo dolžino v primerjavi s pelikani ali gosmi. Dobro je, ko podatki logično ustrezajo!

Lahko ustvarite bolj zanimive vizualizacije stolpičnih grafov z nadgrajevanjem podatkov. Nadgradimo minimalno in maksimalno dolžino na določeno kategorijo ptic:

ggplot(data=birds_grouped, aes(x=Category)) +
  geom_bar(aes(y=MaxLength), stat="identity", position ="identity",  fill='blue') +
  geom_bar(aes(y=MinLength), stat="identity", position="identity", fill='orange')+
  coord_flip()

super-imposed values

🚀 Izziv

Ta nabor podatkov o pticah ponuja bogastvo informacij o različnih vrstah ptic znotraj določenega ekosistema. Poiščite po internetu in preverite, ali lahko najdete druge nabore podatkov o pticah. Vadite risanje grafov in diagramov o teh pticah, da odkrijete dejstva, ki jih niste poznali.

Po-lekcijski kviz

Pregled in samostojno učenje

Ta prva lekcija vam je dala nekaj informacij o tem, kako uporabiti ggplot2 za vizualizacijo količin. Raziskujte druge načine dela z nabori podatkov za vizualizacijo. Raziskujte in poiščite nabore podatkov, ki jih lahko vizualizirate z drugimi paketi, kot sta Lattice in Plotly.

Naloga

Črte, razsevni diagrami in stolpci


Omejitev odgovornosti:
Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco Co-op Translator. Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitne nesporazume ali napačne razlage, ki izhajajo iz uporabe tega prevoda.