# పంపిణీలను దృశ్యీకరించడం |![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/sketchnotes/10-Visualizing-Distributions.png)| |:---:| | పంపిణీలను దృశ్యీకరించడం - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | మునుపటి పాఠంలో, మీరు మినెసోటా పక్షుల గురించి ఒక డేటాసెట్ గురించి కొన్ని ఆసక్తికరమైన విషయాలను నేర్చుకున్నారు. మీరు అవుట్లయర్లను దృశ్యీకరించడం ద్వారా కొన్ని తప్పు డేటాను కనుగొన్నారు మరియు పక్షుల వర్గాల మధ్య గరిష్ట పొడవు ద్వారా తేడాలను పరిశీలించారు. ## [పాఠం ముందు క్విజ్](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/18) ## పక్షుల డేటాసెట్‌ను అన్వేషించండి డేటాను లోతుగా పరిశీలించే మరో మార్గం దాని పంపిణీని చూడటం, లేదా డేటా ఒక అక్షం మీద ఎలా ఏర్పాటు చేయబడిందో చూడటం. ఉదాహరణకు, మీరు మినెసోటా పక్షుల గరిష్ట రెక్కపట్టు లేదా గరిష్ట శరీర ద్రవ్యరాశి యొక్క సాధారణ పంపిణీ గురించి తెలుసుకోవాలనుకోవచ్చు. ఈ డేటాసెట్‌లో డేటా పంపిణీల గురించి కొన్ని విషయాలను కనుగొనండి. మీ R కన్సోల్‌లో `ggplot2` మరియు డేటాబేస్‌ను దిగుమతి చేసుకోండి. మునుపటి అంశంలో చేసినట్లుగా అవుట్లయర్లను డేటాబేస్ నుండి తీసివేయండి. ```r library(ggplot2) birds <- read.csv("../../data/birds.csv",fileEncoding="UTF-8-BOM") birds_filtered <- subset(birds, MaxWingspan < 500) head(birds_filtered) ``` | | Name | ScientificName | Category | Order | Family | Genus | ConservationStatus | MinLength | MaxLength | MinBodyMass | MaxBodyMass | MinWingspan | MaxWingspan | | ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | | 0 | Black-bellied whistling-duck | Dendrocygna autumnalis | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | | 1 | Fulvous whistling-duck | Dendrocygna bicolor | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | | 2 | Snow goose | Anser caerulescens | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | | 3 | Ross's goose | Anser rossii | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | | 4 | Greater white-fronted goose | Anser albifrons | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | సాధారణంగా, మీరు మునుపటి పాఠంలో చేసినట్లుగా స్కాటర్ ప్లాట్ ఉపయోగించి డేటా ఎలా పంపిణీ చేయబడిందో త్వరగా చూడవచ్చు: ```r ggplot(data=birds_filtered, aes(x=Order, y=MaxLength,group=1)) + geom_point() + ggtitle("Max Length per order") + coord_flip() ``` ![max length per order](../../../../../translated_images/te/max-length-per-order.e5b283d952c78c12.webp) ఇది పక్షుల ఆర్డర్ ప్రకారం శరీర పొడవు యొక్క సాధారణ పంపిణీకి అవలోకనం ఇస్తుంది, కానీ ఇది నిజమైన పంపిణీలను ప్రదర్శించడానికి ఉత్తమ మార్గం కాదు. ఆ పని సాధారణంగా హిస్టోగ్రామ్ సృష్టించడం ద్వారా నిర్వహించబడుతుంది. ## హిస్టోగ్రామ్లతో పని చేయడం `ggplot2` హిస్టోగ్రామ్లను ఉపయోగించి డేటా పంపిణీని దృశ్యీకరించడానికి చాలా మంచి మార్గాలను అందిస్తుంది. ఈ రకమైన చార్ట్ ఒక బార్ చార్ట్ లాగా ఉంటుంది, ఇక్కడ బార్ల పెరుగుదల మరియు తగ్గుదల ద్వారా పంపిణీ కనిపిస్తుంది. హిస్టోగ్రామ్ నిర్మించడానికి, మీకు సంఖ్యాత్మక డేటా అవసరం. హిస్టోగ్రామ్ నిర్మించడానికి, మీరు చార్ట్‌ను 'hist' రకంగా నిర్వచించి ప్లాట్ చేయవచ్చు. ఈ చార్ట్ మొత్తం డేటాసెట్ యొక్క సంఖ్యాత్మక డేటా పరిధిలో MaxBodyMass పంపిణీని చూపిస్తుంది. డేటా శ్రేణిని చిన్న బిన్లుగా విభజించడం ద్వారా, ఇది డేటా విలువల పంపిణీని ప్రదర్శించగలదు: ```r ggplot(data = birds_filtered, aes(x = MaxBodyMass)) + geom_histogram(bins=10)+ylab('Frequency') ``` ![distribution over entire dataset](../../../../../translated_images/te/distribution-over-the-entire-dataset.d22afd3fa96be854.webp) మీరు చూడగలిగినట్లుగా, ఈ డేటాసెట్‌లో 400+ పక్షులలో ఎక్కువ భాగం వారి గరిష్ట శరీర ద్రవ్యరాశి 2000 కంటే తక్కువ పరిధిలో ఉంటాయి. `bins` పారామీటర్‌ను 30 లాంటి ఎక్కువ సంఖ్యకు మార్చి డేటా గురించి మరింత అవగాహన పొందండి: ```r ggplot(data = birds_filtered, aes(x = MaxBodyMass)) + geom_histogram(bins=30)+ylab('Frequency') ``` ![distribution-30bins](../../../../../translated_images/te/distribution-30bins.6a3921ea7a421bf7.webp) ఈ చార్ట్ పంపిణీని మరింత సూక్ష్మంగా చూపిస్తుంది. ఎడమవైపు తక్కువ వంకరగా ఉన్న చార్ట్‌ను మీరు ఇచ్చిన పరిధిలో మాత్రమే డేటాను ఎంచుకోవడం ద్వారా సృష్టించవచ్చు: మీ డేటాను ఫిల్టర్ చేసి శరీర ద్రవ్యరాశి 60 కంటే తక్కువ ఉన్న పక్షులను మాత్రమే తీసుకోండి, మరియు 30 `bins` చూపించండి: ```r birds_filtered_1 <- subset(birds_filtered, MaxBodyMass > 1 & MaxBodyMass < 60) ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + geom_histogram(bins=30)+ylab('Frequency') ``` ![filtered histogram](../../../../../translated_images/te/filtered-histogram.6bf5d2bfd8253322.webp) ✅ మరిన్ని ఫిల్టర్లు మరియు డేటా పాయింట్లను ప్రయత్నించండి. డేటా యొక్క పూర్తి పంపిణీని చూడటానికి, లేబుల్ చేయబడిన పంపిణీలను చూపించడానికి `['MaxBodyMass']` ఫిల్టర్‌ను తీసివేయండి. హిస్టోగ్రామ్ కొన్ని మంచి రంగు మరియు లేబులింగ్ మెరుగుదలలను కూడా అందిస్తుంది: రెండు పంపిణీల మధ్య సంబంధాన్ని పోల్చడానికి 2D హిస్టోగ్రామ్ సృష్టించండి. `MaxBodyMass` మరియు `MaxLength` ను పోల్చుకుందాం. `ggplot2` ప్రకాశవంతమైన రంగులను ఉపయోగించి సమీకరణాన్ని చూపించే అంతర్గత మార్గాన్ని అందిస్తుంది: ```r ggplot(data=birds_filtered_1, aes(x=MaxBodyMass, y=MaxLength) ) + geom_bin2d() +scale_fill_continuous(type = "viridis") ``` ఈ రెండు అంశాల మధ్య అంచనా వేయదగిన సంబంధం కనిపిస్తుంది, ఒక ప్రత్యేకంగా బలమైన సమీకరణ బిందువు తో: ![2d plot](../../../../../translated_images/te/2d-plot.c504786f439bd7eb.webp) హిస్టోగ్రామ్లు సంఖ్యాత్మక డేటాకు డిఫాల్ట్‌గా బాగా పనిచేస్తాయి. మీరు టెక్స్ట్ డేటా ప్రకారం పంపిణీలను చూడాలనుకుంటే ఏమవుతుంది? ## టెక్స్ట్ డేటా ఉపయోగించి పంపిణీలను అన్వేషించండి ఈ డేటాసెట్ పక్షుల వర్గం, జనస్, జాతి, కుటుంబం మరియు సంరక్షణ స్థితి గురించి మంచి సమాచారం కూడా కలిగి ఉంది. ఈ సంరక్షణ సమాచారాన్ని లోతుగా పరిశీలిద్దాం. పక్షులు వారి సంరక్షణ స్థితి ప్రకారం ఎలా పంపిణీ చేయబడ్డాయి? > ✅ డేటాసెట్‌లో, సంరక్షణ స్థితిని వివరించడానికి కొన్ని సంక్షిప్త రూపాలు ఉపయోగించబడ్డాయి. ఈ సంక్షిప్త రూపాలు [IUCN రెడ్ లిస్ట్ వర్గాలు](https://www.iucnredlist.org/) నుండి వచ్చాయి, ఇది జాతుల స్థితిని నమోదు చేసే సంస్థ. > > - CR: తీవ్రంగా ప్రమాదంలో ఉన్నది > - EN: ప్రమాదంలో ఉన్నది > - EX: అంతరించిపోయింది > - LC: తక్కువ ఆందోళన > - NT: సమీప ప్రమాదంలో ఉన్నది > - VU: ప్రమాదంలో ఉన్నది ఇవి టెక్స్ట్ ఆధారిత విలువలు కాబట్టి మీరు హిస్టోగ్రామ్ సృష్టించడానికి ట్రాన్స్‌ఫార్మ్ చేయాలి. filteredBirds డేటాఫ్రేమ్ ఉపయోగించి, దాని సంరక్షణ స్థితిని మరియు కనిష్ట రెక్కపట్టును ప్రదర్శించండి. మీరు ఏమి చూస్తారు? ```r 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")) ``` ![wingspan and conservation collation](../../../../../translated_images/te/wingspan-conservation-collation.4024e9aa6910866a.webp) కనిష్ట రెక్కపట్టు మరియు సంరక్షణ స్థితి మధ్య మంచి సంబంధం కనిపించట్లేదు. ఈ పద్ధతిని ఉపయోగించి డేటాసెట్ యొక్క ఇతర అంశాలను పరీక్షించండి. మీరు ఏదైనా సంబంధం కనుగొంటారా? ## డెన్సిటీ ప్లాట్లు ముందు చూసిన హిస్టోగ్రామ్లు 'స్టెప్ప్డ్' లాగా ఉంటాయి మరియు మృదువుగా వంకరగా ప్రవహించవు. మరింత మృదువైన డెన్సిటీ చార్ట్ చూపించడానికి, మీరు డెన్సిటీ ప్లాట్ ప్రయత్నించవచ్చు. ఇప్పుడు డెన్సిటీ ప్లాట్లతో పని చేద్దాం! ```r ggplot(data = birds_filtered_1, aes(x = MinWingspan)) + geom_density() ``` ![density plot](../../../../../translated_images/te/density-plot.675ccf865b76c690.webp) మీరు చూడగలరు, ఈ ప్లాట్ కనిష్ట రెక్కపట్టు డేటాకు ముందు ప్లాట్‌ను ప్రతిధ్వనిస్తుంది; ఇది కేవలం కొంచెం మృదువుగా ఉంటుంది. మీరు రెండవ చార్ట్‌లో ఉన్న ఆ జాగ్గీడ్ MaxBodyMass లైన్‌ను మృదువుగా చేయాలనుకుంటే, ఈ పద్ధతిని ఉపయోగించి దాన్ని బాగా సృష్టించవచ్చు: ```r ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + geom_density() ``` ![bodymass density](../../../../../translated_images/te/bodymass-smooth.d31ce526d82b0a1f.webp) మీకు చాలా మృదువుగా కాకుండా కొంత మృదువుగా ఉండే లైన్ కావాలంటే, `adjust` పారామీటర్‌ను సవరించండి: ```r ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + geom_density(adjust = 1/5) ``` ![less smooth bodymass](../../../../../translated_images/te/less-smooth-bodymass.10f4db8b683cc17d.webp) ✅ ఈ రకమైన ప్లాట్ కోసం అందుబాటులో ఉన్న పారామీటర్ల గురించి చదవండి మరియు ప్రయోగాలు చేయండి! ఈ రకమైన చార్ట్ అందమైన వివరణాత్మక దృశ్యీకరణలను అందిస్తుంది. కొన్ని కోడ్ లైన్లతో, ఉదాహరణకు, మీరు పక్షుల ఆర్డర్ ప్రకారం గరిష్ట శరీర ద్రవ్యరాశి డెన్సిటీని చూపించవచ్చు: ```r ggplot(data=birds_filtered_1,aes(x = MaxBodyMass, fill = Order)) + geom_density(alpha=0.5) ``` ![bodymass per order](../../../../../translated_images/te/bodymass-per-order.9d2b065dd931b928.webp) ## 🚀 సవాలు హిస్టోగ్రామ్లు ప్రాథమిక స్కాటర్‌ప్లాట్లు, బార్ చార్ట్లు లేదా లైన్ చార్ట్ల కంటే మరింత సాంకేతికమైన చార్ట్ రకం. ఇంటర్నెట్‌లో హిస్టోగ్రామ్ల ఉపయోగానికి మంచి ఉదాహరణలను వెతకండి. అవి ఎలా ఉపయోగిస్తారు, ఏమి చూపిస్తాయి, మరియు ఏ రంగాలలో లేదా పరిశోధనా ప్రాంతాలలో ఎక్కువగా ఉపయోగిస్తారు? ## [పాఠం తర్వాత క్విజ్](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/19) ## సమీక్ష & స్వీయ అధ్యయనం ఈ పాఠంలో, మీరు `ggplot2` ఉపయోగించి మరింత సాంకేతికమైన చార్ట్లను చూపించడం ప్రారంభించారు. `geom_density_2d()` గురించి కొంత పరిశోధన చేయండి, ఇది "ఒక లేదా ఎక్కువ కొలతలలో నిరంతర సంభావ్యతా సాంద్రత వక్రరేఖ". ఇది ఎలా పనిచేస్తుందో అర్థం చేసుకోవడానికి [డాక్యుమెంటేషన్](https://ggplot2.tidyverse.org/reference/geom_density_2d.html) చదవండి. ## అసైన్‌మెంట్ [మీ నైపుణ్యాలను వర్తించండి](assignment.md) --- **అస్పష్టత**: ఈ పత్రాన్ని AI అనువాద సేవ [Co-op Translator](https://github.com/Azure/co-op-translator) ఉపయోగించి అనువదించబడింది. మేము ఖచ్చితత్వానికి ప్రయత్నించినప్పటికీ, ఆటోమేటెడ్ అనువాదాల్లో పొరపాట్లు లేదా తప్పిదాలు ఉండవచ్చు. మూల పత్రం దాని స్వదేశీ భాషలోనే అధికారిక మూలంగా పరిగణించాలి. ముఖ్యమైన సమాచారానికి, ప్రొఫెషనల్ మానవ అనువాదం సిఫార్సు చేయబడుతుంది. ఈ అనువాదం వాడకంలో ఏర్పడిన ఏవైనా అపార్థాలు లేదా తప్పుదారులు కోసం మేము బాధ్యత వహించము.