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/lt/3-Data-Visualization/R/10-visualization-distributions
leestott c74c289c4f
🌐 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

Vizualizuojant pasiskirstymus

 Sketchnote by (@sketchthedocs)
Vizualizuojant pasiskirstymus - Sketchnote by @nitya

Ankstesnėje pamokoje sužinojote įdomių faktų apie Minesotos paukščių duomenų rinkinį. Aptikote klaidingus duomenis vizualizuodami išskirtis ir išnagrinėjote skirtumus tarp paukščių kategorijų pagal jų maksimalų ilgį.

Prieš paskaitą vykdomas testas

Tyrinėkite paukščių duomenų rinkinį

Kitas būdas gilintis į duomenis yra pažvelgti į jų pasiskirstymą arba kaip duomenys yra organizuoti pagal ašį. Pavyzdžiui, galbūt norėtumėte sužinoti apie bendrą maksimalios sparnų amplitudės ar maksimalios kūno masės pasiskirstymą Minesotos paukščių duomenų rinkinyje.

Atraskime keletą faktų apie šio duomenų rinkinio pasiskirstymus. Savo R konsolėje importuokite ggplot2 ir duomenų bazę. Pašalinkite išskirtis iš duomenų bazės, kaip tai darėte ankstesnėje temoje.

library(ggplot2)

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

birds_filtered <- subset(birds, MaxWingspan < 500)
head(birds_filtered)
Pavadinimas MokslinisPavadinimas Kategorija Būrys Šeima Gentis ApsaugosStatusas MinIlgis MaxIlgis MinKūnoMasa MaxKūnoMasa MinSparnųAmplitudė MaxSparnųAmplitudė
0 Juodapilvė švilpiko antis Dendrocygna autumnalis Antys/Žąsys/Vandensf. Anseriformes Anatidae Dendrocygna LC 47 56 652 1020 76 94
1 Rudapilvė švilpiko antis Dendrocygna bicolor Antys/Žąsys/Vandensf. Anseriformes Anatidae Dendrocygna LC 45 53 712 1050 85 93
2 Snieginė žąsis Anser caerulescens Antys/Žąsys/Vandensf. Anseriformes Anatidae Anser LC 64 79 2050 4050 135 165
3 Rosso žąsis Anser rossii Antys/Žąsys/Vandensf. Anseriformes Anatidae Anser LC 57.3 64 1066 1567 113 116
4 Didžioji baltakaktė žąsis Anser albifrons Antys/Žąsys/Vandensf. Anseriformes Anatidae Anser LC 64 81 1930 3310 130 165

Apskritai, galite greitai pažvelgti į tai, kaip duomenys pasiskirstę, naudodami sklaidos diagramą, kaip tai darėme ankstesnėje pamokoje:

ggplot(data=birds_filtered, aes(x=Order, y=MaxLength,group=1)) +
  geom_point() +
  ggtitle("Max Length per order") + coord_flip()

maksimalus ilgis pagal būrį

Tai suteikia bendrą paukščių kūno ilgio pasiskirstymo pagal būrį apžvalgą, tačiau tai nėra optimalus būdas tikriems pasiskirstymams parodyti. Šią užduotį paprastai atlieka histograma.

Darbas su histogramomis

ggplot2 siūlo puikius būdus vizualizuoti duomenų pasiskirstymą naudojant histogramas. Šio tipo diagrama yra panaši į stulpelinę diagramą, kur pasiskirstymas matomas per stulpelių kilimą ir kritimą. Norint sukurti histogramą, reikia skaitinių duomenų. Histogramai sukurti galite nurodyti diagramos tipą kaip 'hist'. Ši diagrama rodo MaxBodyMass pasiskirstymą visame duomenų rinkinio skaitinių duomenų diapazone. Padalindama duomenų masyvą į mažesnius intervalus, ji gali parodyti duomenų reikšmių pasiskirstymą:

ggplot(data = birds_filtered, aes(x = MaxBodyMass)) + 
  geom_histogram(bins=10)+ylab('Frequency')

pasiskirstymas visame duomenų rinkinyje

Kaip matote, dauguma iš 400+ paukščių šiame duomenų rinkinyje patenka į mažesnę nei 2000 Max Kūno Masės ribą. Gaukite daugiau įžvalgų apie duomenis, pakeisdami bins parametrą į didesnį skaičių, pavyzdžiui, 30:

ggplot(data = birds_filtered, aes(x = MaxBodyMass)) + geom_histogram(bins=30)+ylab('Frequency')

pasiskirstymas su 30 intervalų

Ši diagrama rodo pasiskirstymą šiek tiek detaliau. Mažiau į kairę pasvirusią diagramą būtų galima sukurti užtikrinant, kad pasirinktumėte tik duomenis tam tikrame diapazone:

Filtruokite savo duomenis, kad gautumėte tik tuos paukščius, kurių kūno masė yra mažesnė nei 60, ir parodykite 30 bins:

birds_filtered_1 <- subset(birds_filtered, MaxBodyMass > 1 & MaxBodyMass < 60)
ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + 
  geom_histogram(bins=30)+ylab('Frequency')

filtruota histograma

Išbandykite kitus filtrus ir duomenų taškus. Norėdami pamatyti visą duomenų pasiskirstymą, pašalinkite ['MaxBodyMass'] filtrą, kad parodytumėte pažymėtus pasiskirstymus.

Histograma taip pat siūlo gražius spalvų ir žymėjimo patobulinimus, kuriuos verta išbandyti:

Sukurkite 2D histogramą, kad palygintumėte dviejų pasiskirstymų santykį. Palyginkime MaxBodyMass ir MaxLength. ggplot2 siūlo įmontuotą būdą parodyti susiliejimą naudojant ryškesnes spalvas:

ggplot(data=birds_filtered_1, aes(x=MaxBodyMass, y=MaxLength) ) +
  geom_bin2d() +scale_fill_continuous(type = "viridis")

Atrodo, kad tarp šių dviejų elementų yra tikėtinas koreliavimas pagal numatomą ašį, su viena ypač stipria susiliejimo vieta:

2D diagrama

Histogramų numatytasis veikimas gerai tinka skaitiniams duomenims. O kas, jei reikia pamatyti pasiskirstymus pagal tekstinius duomenis?

Tyrinėkite duomenų rinkinį pagal tekstinius duomenis

Šiame duomenų rinkinyje taip pat yra geros informacijos apie paukščių kategoriją, jų gentį, rūšį, šeimą bei apsaugos statusą. Panagrinėkime šią apsaugos informaciją. Koks yra paukščių pasiskirstymas pagal jų apsaugos statusą?

Duomenų rinkinyje naudojami keli akronimai, apibūdinantys apsaugos statusą. Šie akronimai yra iš IUCN Raudonojo sąrašo kategorijų, organizacijos, kataloguojančios rūšių būklę.

  • CR: Kritiškai nykstantis
  • EN: Nykstantis
  • EX: Išnykęs
  • LC: Mažiausiai susirūpinimą keliantis
  • NT: Beveik nykstantis
  • VU: Pažeidžiamas

Kadangi tai yra tekstinės reikšmės, reikės atlikti transformaciją, kad sukurtumėte histogramą. Naudodami filteredBirds duomenų rėmelį, parodykite jo apsaugos statusą kartu su minimaliu sparnų amplitudės dydžiu. Ką pastebite?

birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'EX'] <- 'x1' 
birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'CR'] <- 'x2'
birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'EN'] <- 'x3'
birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'NT'] <- 'x4'
birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'VU'] <- 'x5'
birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'LC'] <- 'x6'

ggplot(data=birds_filtered_1, aes(x = MinWingspan, fill = ConservationStatus)) +
  geom_histogram(position = "identity", alpha = 0.4, bins = 20) +
  scale_fill_manual(name="Conservation Status",values=c("red","green","blue","pink"),labels=c("Endangered","Near Threathened","Vulnerable","Least Concern"))

sparnų amplitudė ir apsaugos statusas

Atrodo, kad nėra gero koreliavimo tarp minimalaus sparnų amplitudės dydžio ir apsaugos statuso. Išbandykite kitus duomenų rinkinio elementus naudodami šį metodą. Taip pat galite išbandyti skirtingus filtrus. Ar pastebite kokį nors koreliavimą?

Tankio diagramos

Galbūt pastebėjote, kad iki šiol nagrinėtos histogramos yra „laiptinės“ ir nesudaro sklandžios kreivės. Norėdami parodyti sklandesnę tankio diagramą, galite išbandyti tankio diagramą.

Dabar dirbkime su tankio diagramomis!

ggplot(data = birds_filtered_1, aes(x = MinWingspan)) + 
  geom_density()

tankio diagrama

Galite matyti, kaip ši diagrama atspindi ankstesnę minimalaus sparnų amplitudės duomenų diagramą; ji tiesiog šiek tiek sklandesnė. Jei norėtumėte peržiūrėti tą dantytą MaxBodyMass liniją antroje sukurtoje diagramoje, galėtumėte ją labai gerai išlyginti, naudodami šį metodą:

ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + 
  geom_density()

kūno masės tankis

Jei norėtumėte sklandžios, bet ne per daug sklandžios linijos, redaguokite adjust parametrą:

ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + 
  geom_density(adjust = 1/5)

mažiau sklandi kūno masė

Perskaitykite apie šio tipo diagramos parametrus ir eksperimentuokite!

Šio tipo diagrama siūlo gražiai paaiškinančias vizualizacijas. Pavyzdžiui, su keliomis kodo eilutėmis galite parodyti maksimalios kūno masės tankį pagal paukščių būrį:

ggplot(data=birds_filtered_1,aes(x = MaxBodyMass, fill = Order)) +
  geom_density(alpha=0.5)

kūno masė pagal būrį

🚀 Iššūkis

Histogramų naudojimas yra sudėtingesnis nei paprastų sklaidos diagramų, stulpelinių diagramų ar linijinių diagramų. Ieškokite internete gerų histogramų naudojimo pavyzdžių. Kaip jos naudojamos, ką jos parodo ir kokiose srityse ar tyrimų srityse jos dažniausiai naudojamos?

Po paskaitos vykdomas testas

Apžvalga ir savarankiškas mokymasis

Šioje pamokoje naudojote ggplot2 ir pradėjote kurti sudėtingesnes diagramas. Atlikite tyrimą apie geom_density_2d(), „nepertraukiamą tikimybės tankio kreivę vienoje ar keliose dimensijose“. Perskaitykite dokumentaciją, kad suprastumėte, kaip ji veikia.

Užduotis

Praktikuokite savo įgūdžius


Atsakomybės apribojimas:
Šis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą Co-op Translator. Nors siekiame tikslumo, atkreipiame dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojama naudotis profesionalių vertėjų paslaugomis. Mes neprisiimame atsakomybės už nesusipratimus ar klaidingus aiškinimus, kylančius dėl šio vertimo naudojimo.