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/fi/3-Data-Visualization/R/09-visualization-quantities
leestott b3d803186c
🌐 Update translations via Co-op Translator
4 weeks ago
..
README.md 🌐 Update translations via Co-op Translator 4 weeks ago
assignment.md 🌐 Update translations via Co-op Translator 4 weeks ago

README.md

Määrien visualisointi

 Sketchnote by (@sketchthedocs)
Määrien visualisointi - Sketchnote by @nitya

Tässä oppitunnissa tutustut siihen, miten voit käyttää joitakin R:n saatavilla olevia kirjastoja luodaksesi kiinnostavia visualisointeja, jotka liittyvät määrien käsitteeseen. Käyttämällä puhdistettua datasettiä Minnesotan linnuista voit oppia monia mielenkiintoisia asioita paikallisesta eläimistöstä.

Esiluennon kysely

Tarkastele siipiväliä ggplot2:n avulla

Erinomainen kirjasto erilaisten yksinkertaisten ja monimutkaisten kaavioiden ja diagrammien luomiseen on ggplot2. Yleisesti ottaen datan visualisointi näiden kirjastojen avulla sisältää seuraavat vaiheet: määritä, mitä osia dataframesta haluat käyttää, tee tarvittavat muunnokset datalle, määritä x- ja y-akselin arvot, päätä kaaviotyyppi ja näytä kaavio.

ggplot2 on järjestelmä, joka luo grafiikkaa deklaratiivisesti perustuen "The Grammar of Graphics" -menetelmään. Grammar of Graphics on yleinen kaavioiden visualisointimenetelmä, joka jakaa kaaviot semanttisiin osiin, kuten skaaloihin ja kerroksiin. Toisin sanoen, ggplot2 tekee yksinkertaisten ja monimutkaisten kaavioiden luomisesta univariantille tai multivariantille datalle helppoa vähäisellä koodilla, mikä tekee siitä suosituimman visualisointikirjaston R:ssä. Käyttäjä määrittää, miten muuttujat kartoitetaan visuaalisiin ominaisuuksiin, mitä graafisia elementtejä käytetään, ja ggplot2 hoitaa loput.

Kaavio = Data + Esteettisyys + Geometria

  • Data viittaa datasettiin
  • Esteettisyys tarkoittaa tutkittavia muuttujia (x- ja y-muuttujat)
  • Geometria viittaa kaaviotyyppiin (viivakaavio, pylväsdiagrammi jne.)

Valitse paras geometria (kaaviotyyppi) datasi ja tarinan mukaan, jonka haluat kertoa kaavion avulla.

  • Trendien analysointi: viiva, pylväs
  • Arvojen vertailu: pylväs, palkki, piirakka, hajontakaavio
  • Osien suhde kokonaisuuteen: piirakka
  • Datan jakauman näyttäminen: hajontakaavio, palkki
  • Arvojen välisten suhteiden näyttäminen: viiva, hajontakaavio, kupla

Voit myös tutustua tähän kuvaavaan cheatsheetiin ggplot2:lle.

Luo viivakaavio lintujen siipiväliarvoista

Avaa R-konsoli ja tuo datasetti.

Huom: Datasetti on tallennettu tämän repositorion juureen /data-kansioon.

Tuodaan datasetti ja tarkastellaan datan alkua (ensimmäiset 5 riviä).

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

Datan alku sisältää sekoituksen tekstiä ja numeroita:

Nimi Tieteellinen nimi Kategoria Lahko Heimo Suku Suojelustatus MinPituus MaxPituus MinPaino MaxPaino MinSiipiväli MaxSiipiväli
0 Mustavatsainen viheltävä ankka Dendrocygna autumnalis Ankat/hanhet/vesilinnut Anseriformes Anatidae Dendrocygna LC 47 56 652 1020 76 94
1 Ruostoviheltävä ankka Dendrocygna bicolor Ankat/hanhet/vesilinnut Anseriformes Anatidae Dendrocygna LC 45 53 712 1050 85 93
2 Lumihanhi Anser caerulescens Ankat/hanhet/vesilinnut Anseriformes Anatidae Anser LC 64 79 2050 4050 135 165
3 Rossin hanhi Anser rossii Ankat/hanhet/vesilinnut Anseriformes Anatidae Anser LC 57.3 64 1066 1567 113 116
4 Iso valkoposkihanhi Anser albifrons Ankat/hanhet/vesilinnut Anseriformes Anatidae Anser LC 64 81 1930 3310 130 165

Aloitetaan piirtämällä osa numeerisesta datasta perusviivakaavion avulla. Oletetaan, että haluat tarkastella näiden mielenkiintoisten lintujen maksimaalista siipiväliä.

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

Tässä asennetaan ggplot2-kirjasto ja tuodaan se työtilaan komennolla library("ggplot2"). Kaavion piirtämiseen ggplotissa käytetään ggplot()-funktiota, jossa määritetään datasetti, x- ja y-muuttujat attribuuteiksi. Tässä tapauksessa käytetään geom_line()-funktiota, koska tavoitteena on piirtää viivakaavio.

MaxWingspan-lineplot

Mitä huomaat heti? Näyttää olevan ainakin yksi poikkeama - melko vaikuttava siipiväli! Yli 2000 senttimetrin siipiväli vastaa yli 20 metriä - onko Minnesotassa lentäviä pterosauruksia? Tutkitaan asiaa.

Vaikka voisit tehdä nopean lajittelun Excelissä löytääksesi nämä poikkeamat, jotka ovat todennäköisesti kirjoitusvirheitä, jatka visualisointiprosessia työskentelemällä suoraan kaaviosta.

Lisää x-akselille selitteet, jotka näyttävät, minkä tyyppisistä linnuista on kyse:

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")

Määritämme kulman theme-osiossa ja määritämme x- ja y-akselin selitteet xlab()- ja ylab()-funktioilla. ggtitle() antaa kaaviolle nimen.

MaxWingspan-lineplot-improved

Vaikka selitteiden kiertokulma on asetettu 45 asteeseen, niitä on silti liikaa luettavaksi. Kokeillaan toista strategiaa: merkitään vain poikkeamat ja asetetaan selitteet kaavion sisälle. Voit käyttää hajontakaaviota, jotta selitteille jää enemmän tilaa:

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") + 

Mitä tässä tapahtuu? Käytit geom_point()-funktiota hajontapisteiden piirtämiseen. Tämän avulla lisäsit selitteet linnuille, joiden MaxWingspan > 500, ja piilotit x-akselin selitteet kaavion selkeyttämiseksi.

Mitä huomaat?

MaxWingspan-scatterplot

Suodata dataasi

Sekä valkopäämerikotka että preeriakotka, vaikka ovatkin todennäköisesti suuria lintuja, näyttävät olevan virheellisesti merkittyjä, ja niiden maksimaaliseen siipiväliin on lisätty ylimääräinen nolla. On epätodennäköistä, että kohtaat valkopäämerikotkan, jonka siipiväli on 25 metriä, mutta jos näin käy, kerro meille! Luodaan uusi dataframe ilman näitä kahta poikkeamaa:

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())

Loimme uuden dataframen birds_filtered ja piirsimme hajontakaavion. Suodattamalla poikkeamat datasi on nyt yhtenäisempää ja ymmärrettävämpää.

MaxWingspan-scatterplot-improved

Nyt kun meillä on puhtaampi datasetti ainakin siipivälin osalta, tutkitaan lisää näitä lintuja.

Vaikka viiva- ja hajontakaaviot voivat näyttää tietoa datan arvoista ja niiden jakaumista, haluamme pohtia datasetin sisältämiä arvoja. Voisit luoda visualisointeja vastataksesi seuraaviin kysymyksiin määristä:

Kuinka monta lintukategoriaa on olemassa, ja mikä on niiden lukumäärä?
Kuinka monta lintua on sukupuuttoon kuolleita, uhanalaisia, harvinaisia tai yleisiä?
Kuinka monta eri sukua ja lahkoa on Linnaeuksen terminologian mukaan?

Tutki pylväsdiagrammeja

Pylväsdiagrammit ovat käytännöllisiä, kun haluat näyttää datan ryhmittelyjä. Tutkitaan datasetin lintukategorioita ja katsotaan, mikä on yleisin lukumäärän perusteella.
Luodaan pylväsdiagrammi suodatetusta datasta.

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")

Seuraavassa koodissa asennetaan dplyr- ja lubridate-kirjastot, jotka auttavat datan käsittelyssä ja ryhmittelyssä pinotun pylväsdiagrammin piirtämiseksi. Ensin ryhmitellään data lintujen Category-sarakkeen mukaan ja tiivistetään sarakkeet MinLength, MaxLength, MinBodyMass, MaxBodyMass, MinWingspan, MaxWingspan. Sitten piirretään pylväsdiagrammi ggplot2-kirjaston avulla ja määritetään eri kategorioiden värit ja selitteet.

Stacked bar chart

Tämä pylväsdiagrammi on kuitenkin vaikeasti luettavissa, koska siinä on liikaa ryhmittelemätöntä dataa. Sinun täytyy valita vain data, jonka haluat piirtää, joten tarkastellaan lintujen pituutta kategorian perusteella.

Suodata dataasi sisältämään vain lintujen kategoriat.

Koska kategorioita on paljon, voit näyttää tämän kaavion pystysuunnassa ja säätää sen korkeutta, jotta kaikki data mahtuu mukaan:

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()

Ensin lasketaan Category-sarakkeen uniikit arvot ja lajitellaan ne uuteen dataframeen birds_count. Tämä lajiteltu data järjestetään samalle tasolle, jotta se piirretään järjestyksessä. Käyttämällä ggplot2-kirjastoa piirretään data pylväsdiagrammiin. coord_flip() piirtää vaakapalkit.

category-length

Tämä pylväsdiagrammi näyttää hyvän näkymän lintujen lukumäärästä kussakin kategoriassa. Silmänräpäyksessä näet, että suurin osa tämän alueen linnuista kuuluu Ankat/hanhet/vesilinnut-kategoriaan. Minnesota on "10 000 järven maa", joten tämä ei ole yllättävää!

Kokeile joitakin muita laskentoja tästä datasetistä. Yllättääkö jokin sinut?

Datan vertailu

Voit kokeilla eri ryhmitellyn datan vertailuja luomalla uusia akseleita. Kokeile vertailua lintujen maksimaalisen pituuden perusteella kategorian mukaan:

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()

Ryhmämme birds_filtered-datan Category-sarakkeen mukaan ja piirrämme pylväsdiagrammin.

comparing data

Tässä ei ole mitään yllättävää: kolibrit ovat pienimpiä maksimaalisen pituuden osalta verrattuna pelikaaniin tai hanhiin. On hyvä, kun data on loogista!

Voit luoda mielenkiintoisempia pylväsdiagrammeja päällekkäistämällä dataa. Päällekkäistetään minimipituus ja maksimipituus tiettyyn lintukategoriaan:

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

🚀 Haaste

Tämä lintudatasetti tarjoaa runsaasti tietoa eri lintutyypeistä tietyssä ekosysteemissä. Etsi internetistä muita lintuihin liittyviä datasettiä. Harjoittele kaavioiden ja diagrammien luomista näistä linnuista löytääksesi faktoja, joita et tiennyt.

Luennon jälkeinen kysely

Kertaus ja itseopiskelu

Tämä ensimmäinen oppitunti on antanut sinulle tietoa siitä, miten käyttää ggplot2:ta määrien visualisointiin. Tutki muita tapoja työskennellä datasetin kanssa visualisointia varten. Etsi ja tutki datasettiä, joita voisit visualisoida muilla kirjastoilla, kuten Lattice ja Plotly.

Tehtävä

Viivat, hajonnat ja palkit


Vastuuvapauslauseke:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua Co-op Translator. Vaikka pyrimme tarkkuuteen, huomioithan, että automaattiset käännökset voivat sisältää virheitä tai epätarkkuuksia. Alkuperäinen asiakirja sen alkuperäisellä kielellä tulisi pitää ensisijaisena lähteenä. Kriittisen tiedon osalta suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa väärinkäsityksistä tai virhetulkinnoista, jotka johtuvat tämän käännöksen käytöstä.