उदाहरण सहित R में बार चार्ट और हिस्टोग्राम
⚡ स्मार्ट सारांश
R में बार चार्ट और हिस्टोग्राम ggplot2 का उपयोग करके बनाए जाते हैं, जिसमें श्रेणीबद्ध गणनाओं के लिए geom_bar() और सतत वितरणों के लिए geom_histogram() का उपयोग किया जाता है। यह वॉकथ्रू रंग, समूह आदि को अनुकूलित करता है।pingmtcars डेटासेट पर स्टैकिंग, ओरिएंटेशन, बिनिंग और इन-बार लेबल।

R में बार चार्ट क्या होता है?
बार चार्ट x-अक्ष में श्रेणीबद्ध चरों को प्रदर्शित करने का एक शानदार तरीका है। इस प्रकार का ग्राफ y-अक्ष में दो पहलुओं को दर्शाता है।
- पहला चरण प्रत्येक समूह में घटनाओं की संख्या की गणना करता है।
- दूसरा आरेख y-अक्ष पर स्थित चर के सारांश सांख्यिकी (न्यूनतम, अधिकतम, औसत इत्यादि) को दर्शाता है।
आप mtcars डेटासेट का उपयोग करेंगे, जिसमें निम्नलिखित चर हैं:
- सिलेंडर: कार में सिलेंडर की संख्या। संख्यात्मक चर
- am: ट्रांसमिशन का प्रकार। ऑटोमैटिक के लिए 0 और मैनुअल के लिए 1। संख्यात्मक चर
- mpg: मील प्रति गैलन। संख्यात्मक चर
क्योंकि हिस्टोग्राम दिखने में काफी समान होता है, इसलिए कोई भी कोड लिखने से पहले इस अंतर को स्पष्ट कर लेना बेहतर होगा।
R में बार चार्ट बनाम हिस्टोग्राम: मुख्य अंतर
दोनों चार्ट एक जैसे दिखते हैं, और इसी वजह से उनमें अक्सर भ्रम की स्थिति बनी रहती है। वे अलग-अलग सवालों के जवाब देते हैं और अलग-अलग ज्यामितीय वस्तुओं का उपयोग करते हैं।
| मापदंड | बार चार्ट | हिस्टोग्राम |
|---|---|---|
| एक्स-अक्ष चर | श्रेणीबद्ध या कारक | सतत और संख्यात्मक |
| बार क्या दर्शाता है | एक श्रेणी | मानों का एक अंतराल, या समूह |
| सलाखों के बीच अंतराल | हां, श्रेणियां अलग-अलग हैं। | नहीं, कूड़ेदान पास में ही हैं। |
| बार ऑर्डर | इसे स्वतंत्र रूप से पुनर्व्यवस्थित किया जा सकता है | संख्यात्मक पैमाने द्वारा निर्धारित |
| प्रश्न का उत्तर दिया गया | समूहों की तुलना कैसे की जाती है? | एक चर का वितरण कैसा होता है? |
| ggplot2 ऑब्जेक्ट | geom_bar () | जियोम_हिस्टोग्राम() |
सामान्य नियम: यदि बार को पुनर्व्यवस्थित करने पर भी उसका अर्थ समझ में आता है, तो वह बार चार्ट है। यदि पुनर्व्यवस्थित करने से उसका अर्थ बिगड़ जाता है, तो वह हिस्टोग्राम है। एक ही सतत चर के चतुर्थक-आधारित सारांश के लिए, एक का उपयोग करें। रेखा - चित्र.
R में बार चार्ट कैसे बनाएं
ग्राफ बनाने के लिए R, आप लाइब्रेरी ggplot का उपयोग कर सकते हैं जो प्रकाशन के लिए तैयार ग्राफ़ बनाता है। इस लाइब्रेरी का मूल सिंटैक्स है:
ggplot(data, mapping = aes()) + geometric object arguments: data: dataset used to plot the graph mapping: Control the x and y-axis geometric object: The type of plot you want to show. The most common objects are: - Point: `geom_point()` - Bar: `geom_bar()` - Line: `geom_line()` - Histogram: `geom_histogram()`
यह ट्यूटोरियल ज्यामितीय ऑब्जेक्ट geom_bar() पर केंद्रित है, जो बार चार्ट बनाता है, और निरंतर डेटा के लिए geom_histogram() पर केंद्रित है।
बार चार्ट: गिनती
आपका पहला ग्राफ़ geom_bar() के साथ सिलेंडर की आवृत्ति दिखाता है। नीचे दिया गया कोड सबसे बुनियादी सिंटैक्स है।
library(ggplot2) # Most basic bar chart ggplot(mtcars, aes(x = factor(cyl))) + geom_bar()
Code व्याख्या
- आप डेटासेट mtcars को ggplot में पास करते हैं।
- aes() आर्गुमेंट के अंदर, आप x-अक्ष को फैक्टर वेरिएबल cyl पर सेट करते हैं।
- + चिह्न का मतलब है कि आप चाहते हैं कि R कोड को पढ़ता रहे। यह कोड को तोड़कर उसे अधिक पठनीय बनाता है।
- ज्यामितीय ऑब्जेक्ट के लिए geom_bar() का उपयोग करें।
आउटपुट:
नोट: सुनिश्चित करें कि आप चर को फ़ैक्टर में बदलें अन्यथा R चर को संख्यात्मक रूप में मानता है। नीचे दिया गया उदाहरण देखें।
ग्राफ़ को अनुकूलित करें
ग्राफ़ को अनुकूलित करने के लिए चार तर्क पारित किए जा सकते हैं:
- `stat`: Controls what is plotted on the y-axis. By default `count`, which tallies rows. To plot a value you already computed, pass `stat = "identity"`
- `alpha`: Control density of the color
- `fill`: Change the color of the bar
- `size`: Control the size the bar
बार का रंग बदलें
आप बार का रंग बदल सकते हैं। ध्यान रखें कि सभी बार का रंग एक जैसा है।
# Change the color of the bars ggplot(mtcars, aes(x = factor(cyl))) + geom_bar(fill = "coral") + theme_classic()
Code व्याख्या
- बार के रंगों को aes() मैप द्वारा नियंत्रित किया जाता है।ping ज्यामितीय ऑब्जेक्ट के अंदर (यानी ggplot() में नहीं)। आप fill आर्गुमेंट्स का उपयोग करके रंग बदल सकते हैं। यहाँ, आप मूंगा रंग चुनते हैं।
आउटपुट:
आप इस कोड का उपयोग कर सकते हैं:
grDevices::colors()
आर में उपलब्ध सभी रंगों को देखने के लिए यहां क्लिक करें। इसमें लगभग 650 रंग हैं।
तीव्रता बदलें
आप बार के रंग की तीव्रता को बढ़ा या घटा सकते हैं
# Change intensity ggplot(mtcars, aes(factor(cyl))) + geom_bar(fill = "coral", alpha = 0.5) + theme_classic()
Code व्याख्या
- बार की तीव्रता बढ़ाने/घटाने के लिए, आप अल्फा का मान बदल सकते हैं। अल्फा का उच्च मान तीव्रता बढ़ाता है, और निम्न मान तीव्रता घटाता है। अल्फा का मान 0 से 1 तक होता है। 1 पर रंग पैलेट से बिल्कुल मेल खाता है; 0 पर बार अदृश्य होता है। यहाँ आप अल्फा = 0.5 चुनते हैं।
आउटपुट:
समूहों के अनुसार रंग
आप बार के रंग बदल सकते हैं, यानी हर समूह के लिए एक अलग रंग। उदाहरण के लिए, cyl वैरिएबल में तीन लेवल हैं, तो आप तीन रंगों के साथ बार चार्ट बना सकते हैं।
# Color by group ggplot(mtcars, aes(factor(cyl), fill = factor(cyl))) + geom_bar()
Code व्याख्या
- aes() फ़ंक्शन के अंदर मौजूद fill आर्गुमेंट बार का रंग बदलता है। आप fill को x-अक्ष वेरिएबल के बराबर सेट करके रंग बदल सकते हैं। आपके उदाहरण में, x-अक्ष वेरिएबल cyl है; fill = factor(cyl)
आउटपुट:
बार में एक समूह जोड़ें
आप y-अक्ष को किसी अन्य कारक स्तर के आधार पर विभाजित कर सकते हैं। उदाहरण के लिए, आप सिलेंडर के प्रकार के आधार पर ऑटोमैटिक और मैनुअल ट्रांसमिशन की संख्या की गणना कर सकते हैं।
आप निम्न प्रकार आगे बढ़ेंगे:
- चरण 1: mtcars डेटासेट के साथ डेटा फ़्रेम बनाएँ
- चरण 2: स्वचालित ट्रांसमिशन के लिए am वैरिएबल को auto और मैन्युअल ट्रांसमिशन के लिए man लेबल करें। am और cyl को फ़ैक्टर के रूप में बदलें ताकि आपको ggplot() फ़ंक्शन में फ़ैक्टर() का उपयोग करने की आवश्यकता न पड़े।
- चरण 3: सिलेंडर द्वारा ट्रांसमिशन की संख्या की गणना करने के लिए बार चार्ट बनाएं
library(dplyr) # Step 1 data <- mtcars %>% #Step 2 mutate(am = factor(am, labels = c("auto", "man")), cyl = factor(cyl))
डेटासेट तैयार होने के बाद, आप ग्राफ बना सकते हैं:
# चरण 3
ggplot(data, aes(x = cyl, fill = am)) + geom_bar() + theme_classic()
Code व्याख्या
- ggplot() कॉल डेटासेट डेटा और aes() मैप प्राप्त करता है।ping.
- aes() में आप x-अक्ष चर को शामिल करते हैं तथा बार को भरने के लिए कौन सा चर आवश्यक है (अर्थात am)
- geom_bar(): बार चार्ट बनाएं
आउटपुट:
नक्शाping बार को दो रंगों से भरा जाएगा, प्रत्येक स्तर के लिए एक रंग। डेटासेट में अन्य कारक चर चुनकर समूह को बदलना बहुत आसान है।
प्रतिशत में बार चार्ट
आप बार को कच्ची गणना के बजाय प्रतिशत में देख सकते हैं।
# प्रतिशत में बार चार्ट
ggplot(data, aes(x = cyl, fill = am)) + geom_bar(position = "fill") + theme_classic()
Code व्याख्या
- y-अक्ष में प्रतिशत के साथ ग्राफ़िक बनाने के लिए geom_bar() तर्क में position = “fill” का उपयोग करें।
आउटपुट:
अगल-बगल पट्टियाँ
समूह चर को साथ-साथ रखकर बार चार्ट बनाना आसान है।
# Bar chart side by side ggplot(data, aes(x = cyl, fill = am)) + geom_bar(position = position_dodge()) + theme_classic()
Code व्याख्या
- position=position_dodge(): स्पष्ट रूप से बताता है कि बार को कैसे व्यवस्थित करना है
आउटपुट:
सारांश सांख्यिकी के साथ बार चार्ट
ट्यूटोरियल के दूसरे भाग में, y-अक्ष पर गणना किया गया मान दर्शाया गया है, न कि कोई संख्या। ध्यान दें कि यह अभी भी एक बार चार्ट है: एक वास्तविक हिस्टोग्राम के बारे में आगे विस्तार से बताया गया है, और उसमें एक अलग ज्यामितीय वस्तु का उपयोग होता है।
आपका उद्देश्य प्रत्येक प्रकार के सिलेंडर के लिए प्रति गैलन औसत मील के साथ एक ग्राफ बनाना है। एक सूचनात्मक ग्राफ बनाने के लिए, आप इन चरणों का पालन करेंगे:
- चरण 1: सिलेंडर द्वारा प्रति गैलन औसत मील के साथ एक नया चर बनाएं
- चरण 2: एक बुनियादी हिस्टोग्राम बनाएँ
- चरण 3: अभिविन्यास बदलें
- चरण 4: रंग बदलें
- चरण 5: आकार बदलें
- चरण 6: ग्राफ़ में लेबल जोड़ें
चरण 1) एक नया वेरिएबल बनाएं
आप data_histogram नाम से एक डेटा फ़्रेम बनाते हैं जो कार में सिलेंडर की संख्या के हिसाब से प्रति गैलन औसत मील लौटाता है। आप इस नए चर को mean_mpg कहते हैं, और आप औसत को दो दशमलव के साथ पूर्णांकित करते हैं।
# चरण 1
data_histogram <- mtcars %>% mutate(cyl = factor(cyl)) %>% group_by(cyl) %>% summarize(mean_mpg = round(mean(mpg), 2))
चरण 2) एक बुनियादी हिस्टोग्राम बनाएँ
आप हिस्टोग्राम बना सकते हैं। यह अभी ग्राहक को सौंपने के लिए पूरी तरह से तैयार नहीं है, लेकिन यह रुझान को दर्शाता है।
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) + geom_bar(stat = "identity")
Code व्याख्या
- aes() में अब दो चर हैं। cyl चर x-अक्ष को संदर्भित करता है, और mean_mpg y-अक्ष है।
- आप stat = “identity” पास करते हैं ताकि geom_bar() पंक्तियों की गिनती करने के बजाय y-अक्ष चर का उपयोग यथावत करे। geom_bar() के लिए डिफ़ॉल्ट मान stat = “count” है।
आउटपुट:
चरण 3) अभिविन्यास बदलें
आप ग्राफ का अभिविन्यास ऊर्ध्वाधर से क्षैतिज में बदलते हैं।
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) + geom_bar(stat = "identity") + coord_flip()
Code व्याख्या
- आप coord_flip() के साथ ग्राफ के अभिविन्यास को नियंत्रित कर सकते हैं।
आउटपुट:
चरण 4) रंग बदलें
आप x-अक्ष चर के कारक स्तर के अनुसार सलाखों के रंगों में अंतर कर सकते हैं।
ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) + geom_bar(stat = "identity") + coord_flip() + theme_classic()
Code व्याख्या
- आप fill= cyl मैप का उपयोग करके समूहों द्वारा ग्राफ़ प्लॉट कर सकते हैं।pingR सिलेंडर चर के स्तरों के आधार पर रंगों का स्वचालित रूप से ध्यान रखता है।
आउटपुट:
चरण 5) आकार बदलें
ग्राफ को अधिक सुंदर बनाने के लिए आप बार की चौड़ाई कम कर देते हैं।
graph <- ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) + geom_bar(stat = "identity", width = 0.5) + coord_flip() + theme_classic()
Code व्याख्या
- geom_bar() फ़ंक्शन में width आर्गुमेंट बार की मोटाई को नियंत्रित करता है। इसका मान अधिक होने पर बार चौड़ा हो जाता है।
- प्लॉट को ऑब्जेक्ट ग्राफ़ में संग्रहीत किया जाता है, क्योंकि अगला चरण इसे बिना किसी बदलाव के पुनः उपयोग करता है। मध्यवर्ती प्लॉटों को संग्रहीत करने से कोड पठनीय बना रहता है।
आउटपुट:
चरण 6) ग्राफ़ में लेबल जोड़ें
अंतिम चरण में प्रत्येक बार के अंदर mean_mpg का मान एक लेबल के रूप में जोड़ा जाता है।
graph +
geom_text(aes(label = mean_mpg),
hjust = 1.5,
color = "white",
size = 3) +
theme_classic()
Code व्याख्या
- geom_text() फ़ंक्शन पाठ की सौंदर्यात्मकता को नियंत्रित करने के लिए उपयोगी है।
- लेबल=: बार के अंदर एक लेबल जोड़ें
- mean_mpg: लेबल के लिए variable mean_mpg का उपयोग करें
- hjust लेबल की बार पर स्थिति को नियंत्रित करता है। 1 के करीब मान इसे बार के अंत के पास रखते हैं, और इससे अधिक मान इसे अक्ष की ओर पीछे धकेलते हैं। यदि ग्राफ़ का अभिविन्यास ऊर्ध्वाधर है, तो hjust को vjust में बदल दें।
- color=”white”: टेक्स्ट का रंग बदलें। यहाँ आप सफ़ेद रंग का उपयोग करते हैं।
- आकार=3: पाठ का आकार निर्धारित करें.
आउटपुट:
R में बार चार्ट में बार को कैसे क्रमबद्ध और लेबल करें
एक ड्राफ्ट चार्ट को प्रकाशन योग्य चार्ट से अलग करने वाली दो अंतिम चीजें हैं: बार को मूल्य के अनुसार क्रमबद्ध करना और अक्षों को ठीक से लेबल करना।
बारों का पुनर्व्यवस्थापन। ggplot2 डिफ़ॉल्ट रूप से फ़ैक्टर स्तरों को वर्णानुक्रम में व्यवस्थित करता है, जो शायद ही कभी सबसे अधिक जानकारीपूर्ण क्रम होता है। किसी दूसरे चर के आधार पर सॉर्ट करने के लिए x चर को reorder() में रैप करें:
# Sort the bars from lowest to highest mean_mpg ggplot(data_histogram, aes(x = reorder(cyl, mean_mpg), y = mean_mpg)) + geom_bar(stat = "identity", fill = "coral") + theme_classic()
सॉर्टिंग वेरिएबल के आगे माइनस साइन लगाएं, जैसे reorder(cyl, -mean_mpg), ताकि दिशा उलट जाए।
शीर्षक और अक्ष लेबल जोड़ना। labs() फ़ंक्शन एक ही कॉल में सभी टेक्स्ट तत्वों को सेट करता है:
ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) + geom_bar(stat = "identity") + labs(title = "Average fuel economy by cylinder count", subtitle = "mtcars dataset", x = "Number of cylinders", y = "Mean miles per gallon", fill = "Cylinders", caption = "Source: mtcars") + theme_classic()
labs() फ़ंक्शन के अंदर fill = NULL सेट करने से लीजेंड का शीर्षक पूरी तरह से हट जाएगा, और जब x-अक्ष पर पहले से ही समूहों के नाम मौजूद हों तो लीजेंड को हटाने के लिए theme(legend.position = “none”) का उपयोग करें।
अपने मनपसंद रंग चुनें। डिफ़ॉल्ट पैलेट को एक स्पष्ट पैलेट से बदलें ताकि चार्ट आपके हाउस स्टाइल से मेल खाए:
scale_fill_manual(values = c("4" = "#0e9cd1", "6" = "coral", "8" = "grey40"))
geom_histogram() का उपयोग करके R में हिस्टोग्राम कैसे बनाएं
हिस्टोग्राम यह दर्शाता है कि एक सतत चर का वितरण कैसा है। श्रेणियों की गणना करने के बजाय, ggplot2 संख्यात्मक श्रेणी को उपखंडों में विभाजित करता है और गिनता है कि प्रत्येक उपखंड में कितने अवलोकन आते हैं।
library(ggplot2) # Most basic histogram ggplot(mtcars, aes(x = mpg)) + geom_histogram()
R एक संदेश प्रिंट करता है जिसमें बेहतर बिन संख्या चुनने की सलाह दी जाती है, क्योंकि 30 बिन की डिफ़ॉल्ट संख्या मनमानी है। दो तर्क इसे नियंत्रित करते हैं:
- डिब्बे: रेंज को विभाजित करने के लिए अंतरालों की संख्या।
- बिनविड्थ: प्रत्येक अंतराल की चौड़ाई, चर की इकाइयों में व्यक्त की गई। इसका उपयोग तब करें जब इकाइयाँ सार्थक हों।
# Set the number of bins ggplot(mtcars, aes(x = mpg)) + geom_histogram(bins = 10, fill = "coral", color = "white") + theme_classic() # Or set the width of each bin instead ggplot(mtcars, aes(x = mpg)) + geom_histogram(binwidth = 4, fill = "coral", color = "white") + theme_classic()
हिस्टोग्राम में बिनिंग सबसे महत्वपूर्ण विकल्प है। बहुत कम बिन्स होने से दूसरी चोटी जैसी वास्तविक संरचना छिप जाती है; बहुत अधिक बिन्स होने से चार्ट शोरगुल से भर जाता है। किसी एक मान पर अंतिम निर्णय लेने से पहले कई मानों को आजमाएं।
समूहों की तुलना करना। वितरण को पठनीय बनाए रखने के लिए भरने हेतु एक कारक को मैप करें और स्थिति निर्धारित करें:
ggplot(mtcars, aes(x = mpg, fill = factor(cyl))) + geom_histogram(bins = 10, position = "identity", alpha = 0.5) + theme_classic()
position = “identity” और कम अल्फा मान के साथ हिस्टोग्राम ओवरलैप हो जाते हैं, जिससे आप आकृतियों की सीधे तुलना कर सकते हैं। यदि आप बिन्स को अगल-बगल देखना चाहते हैं, तो position = “dodge” का उपयोग करें।
गणना के बजाय घनत्व। जब समूहों का आकार भिन्न हो, तो क्षेत्रफलों की तुलना करने के लिए प्लॉट घनत्व निर्धारित करें और उस पर एक चिकना वक्र ओवरले करें:
ggplot(mtcars, aes(x = mpg)) + geom_histogram(aes(y = after_stat(density)), bins = 10, fill = "coral", alpha = 0.6) + geom_density(color = "steelblue", linewidth = 1) + theme_classic()
R में बार चार्ट और हिस्टोग्राम: Code संदर्भ
बार चार्ट श्रेणीबद्ध x-अक्ष के लिए उपयुक्त होता है, जहाँ y-अक्ष या तो गणना या सारांश सांख्यिकी होती है। नीचे दी गई तालिका में ऊपर वर्णित प्रत्येक प्रकार के लिए ggplot2 कॉल सूचीबद्ध है:
| उद्देश्य | Code |
|---|---|
| गिनती |
ggplot(df, aes(x = factor(x1))) + geom_bar() |
| अलग-अलग रंग के भरण के साथ गणना करें |
ggplot(df, aes(x = factor(x1), fill = factor(x1))) + geom_bar() |
| समूहों के साथ गणना करें, स्टैक्ड करें |
ggplot(df, aes(x = factor(x1), fill = factor(x2))) + geom_bar() |
| समूहों के साथ-साथ गिनती करें |
ggplot(df, aes(x = factor(x1), fill = factor(x2))) + geom_bar(position = position_dodge()) |
| समूहों के साथ गणना करें, % में स्टैक्ड करें |
ggplot(df, aes(x = factor(x1), fill = factor(x2))) + geom_bar(position = "fill") |
| मान (सारांश सांख्यिकी) |
ggplot(df, aes(x = factor(x1), y = x2)) + geom_bar(stat = "identity") |
| सतत चर का हिस्टोग्राम |
ggplot(df, aes(x = x1)) + geom_histogram(bins = 30) |













