# वितरणहरू दृश्यात्मक बनाउने |![ [(@sketchthedocs)](https://sketchthedocs.dev) द्वारा स्केच नोट ](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/sketchnotes/10-Visualizing-Distributions.png)| |:---:| | वितरणहरू दृश्यात्मक बनाउने - _[@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) ``` | | नाम | वैज्ञानिक नाम | श्रेणी | क्रम | परिवार | वंश | संरक्षण स्थिति | न्यूनतम लम्बाइ | अधिकतम लम्बाइ | न्यूनतम शरीर तौल | अधिकतम शरीर तौल | न्यूनतम पखेटा फैलावट | अधिकतम पखेटा फैलावट | | ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | | 0 | कालो-पेट भएको सिठी हाँस | Dendrocygna autumnalis | हाँस/पानीका चराहरू | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | | 1 | फुल्भस सिठी हाँस | Dendrocygna bicolor | हाँस/पानीका चराहरू | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | | 2 | हिउँ हाँस | Anser caerulescens | हाँस/पानीका चराहरू | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | | 3 | रोसको हाँस | Anser rossii | हाँस/पानीका चराहरू | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | | 4 | ठूलो सेतो-अगाडि भएको हाँस | Anser albifrons | हाँस/पानीका चराहरू | 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() ``` ![प्रत्येक क्रमको अधिकतम लम्बाइ](../../../../../translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.ne.png) यसले प्रत्येक चराको क्रम अनुसार शरीरको लम्बाइको सामान्य वितरणको झलक दिन्छ, तर यो वास्तविक वितरण देखाउनको लागि उत्तम तरिका होइन। यो कार्य सामान्यतया हिस्टोग्राम बनाएर गरिन्छ। ## हिस्टोग्रामसँग काम गर्ने `ggplot2` ले हिस्टोग्राम प्रयोग गरेर डाटाको वितरणलाई दृश्यात्मक बनाउने उत्कृष्ट तरिकाहरू प्रदान गर्दछ। यो प्रकारको चार्ट बार चार्ट जस्तै हुन्छ जहाँ वितरण बारहरूको उचाइ र गिरावटबाट देख्न सकिन्छ। हिस्टोग्राम बनाउनको लागि तपाईंलाई संख्यात्मक डाटा चाहिन्छ। हिस्टोग्राम बनाउन, तपाईंले चार्टलाई 'hist' प्रकारको रूपमा परिभाषित गर्न सक्नुहुन्छ। यो चार्टले सम्पूर्ण डेटासेटको संख्यात्मक डाटाको दायराको लागि MaxBodyMass को वितरण देखाउँछ। डाटाको एरेलाई साना भागहरूमा विभाजन गरेर, यसले डाटाको मानहरूको वितरण देखाउन सक्छ: ```r ggplot(data = birds_filtered, aes(x = MaxBodyMass)) + geom_histogram(bins=10)+ylab('Frequency') ``` ![सम्पूर्ण डेटासेटमा वितरण](../../../../../translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.ne.png) जस्तो देखिन्छ, यस डेटासेटका 400+ चराहरूको अधिकांश Max Body Mass 2000 भन्दा कमको दायरामा पर्दछन्। `bins` प्यारामिटरलाई उच्च संख्यामा, जस्तै 30 मा परिवर्तन गरेर डाटाको बारेमा थप जानकारी प्राप्त गर्नुहोस्: ```r ggplot(data = birds_filtered, aes(x = MaxBodyMass)) + geom_histogram(bins=30)+ylab('Frequency') ``` ![30 बिन्सको वितरण](../../../../../translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.ne.png) यो चार्टले वितरणलाई अलि बढी विस्तृत रूपमा देखाउँछ। कम बाँया तिर झुकिएको चार्ट बनाउन, तपाईंले निश्चित दायराभित्रको डाटा मात्र चयन गरेर सुनिश्चित गर्न सक्नुहुन्छ: तपाईंको डाटालाई फिल्टर गरेर केवल ती चराहरू प्राप्त गर्नुहोस् जसको शरीर तौल 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') ``` ![फिल्टर गरिएको हिस्टोग्राम](../../../../../translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.ne.png) ✅ अन्य फिल्टरहरू र डाटाका बिन्दुहरू प्रयास गर्नुहोस्। डाटाको पूर्ण वितरण हेर्नको लागि, `['MaxBodyMass']` फिल्टर हटाएर लेबल गरिएको वितरणहरू देखाउनुहोस्। हिस्टोग्रामले केही राम्रो रंग र लेबलिङ सुधारहरू पनि प्रदान गर्दछ: दुई वितरणहरू बीचको सम्बन्ध तुलना गर्न 2D हिस्टोग्राम बनाउनुहोस्। आउनुहोस् `MaxBodyMass` र `MaxLength` तुलना गरौं। `ggplot2` ले उज्यालो रंगहरू प्रयोग गरेर एकीकृतता देखाउने बिल्ट-इन तरिका प्रदान गर्दछ: ```r ggplot(data=birds_filtered_1, aes(x=MaxBodyMass, y=MaxLength) ) + geom_bin2d() +scale_fill_continuous(type = "viridis") ``` जस्तो देखिन्छ, यी दुई तत्वहरू बीच अपेक्षित अक्षमा सम्बन्ध छ, एक विशेष रूपमा बलियो एकीकृत बिन्दु सहित: ![2D प्लट](../../../../../translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.ne.png) हिस्टोग्रामहरू संख्यात्मक डाटाको लागि डिफल्ट रूपमा राम्रोसँग काम गर्छन्। यदि तपाईंलाई पाठ डाटाको अनुसार वितरणहरू हेर्न आवश्यक छ भने के गर्ने? ## पाठ डाटाको प्रयोग गरेर वितरणहरू अन्वेषण गर्नुहोस् यस डेटासेटमा चराको श्रेणी, वंश, प्रजाति, परिवार, र संरक्षण स्थिति सम्बन्धी राम्रो जानकारी पनि समावेश छ। आउनुहोस् यस संरक्षण जानकारीलाई अन्वेषण गरौं। चराहरूको संरक्षण स्थितिको अनुसार वितरण कस्तो छ? > ✅ डेटासेटमा संरक्षण स्थिति वर्णन गर्न विभिन्न संक्षेप शब्दहरू प्रयोग गरिएका छन्। यी संक्षेप शब्दहरू [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")) ``` ![पखेटा फैलावट र संरक्षण स्थिति](../../../../../translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.ne.png) न्यूनतम पखेटा फैलावट र संरक्षण स्थितिको बीचमा राम्रो सम्बन्ध देखिँदैन। यस विधि प्रयोग गरेर डेटासेटका अन्य तत्वहरू परीक्षण गर्नुहोस्। तपाईं विभिन्न फिल्टरहरू पनि प्रयास गर्न सक्नुहुन्छ। के तपाईं कुनै सम्बन्ध पाउनुहुन्छ? ## घनत्व प्लटहरू तपाईंले देख्नुभएको हुन सक्छ कि अहिलेसम्मका हिस्टोग्रामहरू 'स्टेप्ड' छन् र चिल्लो रूपमा आर्कमा प्रवाह गर्दैनन्। चिल्लो घनत्व चार्ट देखाउन, तपाईं घनत्व प्लट प्रयास गर्न सक्नुहुन्छ। आउनुहोस्, अब घनत्व प्लटसँग काम गरौं! ```r ggplot(data = birds_filtered_1, aes(x = MinWingspan)) + geom_density() ``` ![घनत्व प्लट](../../../../../translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.ne.png) तपाईंले देख्न सक्नुहुन्छ कि यो प्लटले न्यूनतम पखेटा फैलावट डाटाको लागि अघिल्लो चार्टलाई प्रतिध्वनित गर्दछ; यो केवल अलि चिल्लो छ। यदि तपाईंले दोस्रो चार्टमा रहेको जंगली MaxBodyMass लाइनलाई चिल्लो बनाउन चाहनुहुन्छ भने, यस विधि प्रयोग गरेर यसलाई धेरै राम्रोसँग पुनः निर्माण गर्न सक्नुहुन्छ: ```r ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + geom_density() ``` ![शरीर तौल घनत्व](../../../../../translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.ne.png) यदि तपाईं चिल्लो तर धेरै चिल्लो नभएको लाइन चाहनुहुन्छ भने, `adjust` प्यारामिटर सम्पादन गर्नुहोस्: ```r ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + geom_density(adjust = 1/5) ``` ![कम चिल्लो शरीर तौल](../../../../../translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.ne.png) ✅ यस प्रकारको प्लटको लागि उपलब्ध प्यारामिटरहरूको बारेमा पढ्नुहोस् र प्रयोग गर्नुहोस्! यो प्रकारको चार्टले सुन्दर व्याख्यात्मक दृश्यहरू प्रदान गर्दछ। उदाहरणका लागि, केही लाइनहरूको कोड प्रयोग गरेर, तपाईं प्रत्येक चराको क्रम अनुसार अधिकतम शरीर तौल घनत्व देखाउन सक्नुहुन्छ: ```r ggplot(data=birds_filtered_1,aes(x = MaxBodyMass, fill = Order)) + geom_density(alpha=0.5) ``` ![प्रत्येक क्रमको शरीर तौल](../../../../../translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.ne.png) ## 🚀 चुनौती हिस्टोग्रामहरू आधारभूत स्क्याटरप्लट, बार चार्ट, वा लाइन चार्टभन्दा बढी परिष्कृत प्रकारका चार्ट हुन्। इन्टरनेटमा खोजी गरेर हिस्टोग्रामको प्रयोगका राम्रो उदाहरणहरू खोज्नुहोस्। तिनीहरू कसरी प्रयोग गरिन्छन्, के देखाउँछन्, र कुन क्षेत्रहरू वा अनुसन्धानका क्षेत्रमा तिनीहरू प्रायः प्रयोग गरिन्छन्? ## [पाठ पछि क्विज](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) प्रयोग गरेर अनुवाद गरिएको छ। हामी शुद्धताको लागि प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादहरूमा त्रुटि वा अशुद्धता हुन सक्छ। यसको मूल भाषा मा रहेको मूल दस्तावेज़लाई आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीको लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याको लागि हामी जिम्मेवार हुने छैनौं।