ग्राफ़ डेटा विश्लेषण की प्रक्रिया का तीसरा हिस्सा हैं। पहला भाग डेटा निष्कर्षण के बारे में है , दूसरा भाग डेटा की सफाई और हेरफेर करने से संबंधित है । अंत में, डेटा वैज्ञानिक को अपने परिणामों को ग्राफिक रूप से संवाद करने की आवश्यकता हो सकती है ।
निम्नलिखित चित्र में डेटा वैज्ञानिक के कार्य की समीक्षा की जा सकती है
- एक डेटा वैज्ञानिक का पहला कार्य एक शोध प्रश्न को परिभाषित करना है। यह शोध प्रश्न परियोजना के उद्देश्यों और लक्ष्यों पर निर्भर करता है।
- उसके बाद, सबसे प्रमुख कार्यों में से एक फीचर इंजीनियरिंग है। डेटा वैज्ञानिक को डेटा को इकट्ठा करने, हेरफेर करने और साफ करने की आवश्यकता है
- जब यह चरण पूरा हो जाता है, तो वह डेटासेट तलाशना शुरू कर सकता है। कभी-कभी, एक नई खोज के कारण मूल परिकल्पना को परिष्कृत और बदलना आवश्यक है।
- जब व्याख्यात्मक विश्लेषण प्राप्त किया जाता है, तो डेटा वैज्ञानिक को अंतर्निहित अवधारणाओं और मॉडलों को समझने के लिए पाठक की क्षमता पर विचार करना होगा ।
- उसके परिणामों को एक ऐसे प्रारूप में प्रस्तुत किया जाना चाहिए जिसे सभी हितधारक समझ सकें। परिणामों को संप्रेषित करने के सर्वोत्तम तरीकों में से एक ग्राफ के माध्यम से है ।
- जटिल विश्लेषण को सरल बनाने के लिए रेखांकन एक अविश्वसनीय उपकरण है।
इस ट्यूटोरियल में, आप सीखेंगे-
- ggplot2 पैकेज
- स्कैटर प्लॉट
- अक्ष बदलें
- फिट मूल्यों के साथ स्कैटर प्लॉट
- ग्राफ़ में जानकारी जोड़ें
- X- अक्ष और y- अक्ष का नाम बदलें
- तराजू पर नियंत्रण रखें
- विषय
- भूखंडों को बचाएं
ggplot2 पैकेज
ट्यूटोरियल का यह हिस्सा आर के साथ ग्राफ / चार्ट बनाने के तरीके पर केंद्रित है।
इस ट्यूटोरियल में, आप ggplot2 पैकेज का उपयोग करने जा रहे हैं। यह पैकेज विल्किंसन, 2005 द्वारा लिखित ग्राफिक्स के ग्रैमर ऑफ ग्राफिक्स के सुसंगत अंतर्निहित पर बनाया गया है। ggplot2 बहुत लचीला है, कई विषयों और कथानक विनिर्देश को उच्च स्तर पर शामिल करता है। Ggplot2 के साथ, आप 3-आयामी ग्राफिक्स प्लॉट नहीं कर सकते हैं और इंटरैक्टिव ग्राफिक्स बना सकते हैं।
Ggplot2 में, एक ग्राफ निम्नलिखित तर्कों से बना है:
- डेटा
- सौंदर्य मानचित्रण
- ज्यामितीय वस्तु
- सांख्यिकीय परिवर्तन
- तराजू
- निर्देशांक तरीका
- स्थिति समायोजन
- मुखाकृति
आप ट्यूटोरियल में उन तर्कों को नियंत्रित करना सीखेंगे।
Ggplot2 का मूल सिंटैक्स है:
ggplot(data, mapping=aes()) +geometric objectarguments:data: Dataset used to plot the graphmapping: Control the x and y-axisgeometric object: The type of plot you want to show. The most common object are:- Point: `geom_point()`- Bar: `geom_bar()`- Line: `geom_line()`- Histogram: `geom_histogram()`
स्कैटर प्लॉट
आइए देखें कि ggplot mtcars डेटासेट के साथ कैसे काम करता है। आप mpg वैरिएबल और ड्रैट वैरिएबल के स्कैटरप्लॉट को प्लॉट करके शुरू करते हैं।
मूल बिखराव की साजिश
library(ggplot2)ggplot(mtcars, aes(x = drat, y = mpg)) +geom_point()
कोड स्पष्टीकरण
- आप पहले ggplot पर डेटासेट mtcars पास करते हैं।
- एईएस () तर्क के अंदर, आप x- अक्ष और y- अक्ष जोड़ते हैं।
- + चिन्ह का अर्थ है कि आप चाहते हैं कि R कोड को पढ़ता रहे। यह कोड को तोड़कर अधिक पठनीय बनाता है।
- ज्यामितीय ऑब्जेक्ट के लिए geom_point () का उपयोग करें।
आउटपुट:
समूहों के साथ स्कैटर प्लॉट
कभी-कभी, डेटा के समूह (यानी कारक स्तर डेटा) द्वारा मूल्यों को अलग करना दिलचस्प हो सकता है।
ggplot(mtcars, aes(x = mpg, y = drat)) +geom_point(aes(color = factor(gear)))
कोड स्पष्टीकरण
- Geom_point के अंदर एईएस () समूह के रंग को नियंत्रित करता है। समूह एक कारक चर होना चाहिए। इस प्रकार, आप चर गियर को एक कारक में बदलते हैं।
- कुल मिलाकर, आपके पास कोड एईएस (रंग = कारक (गियर)) है जो डॉट्स का रंग बदलता है।
आउटपुट:
अक्ष बदलें
डेटा को फिर से बेचना डेटा वैज्ञानिक नौकरी का एक बड़ा हिस्सा है। दुर्लभ अवसर में डेटा एक अच्छा बेल आकार में आता है। अपने डेटा को आउटलेर्स के प्रति कम संवेदनशील बनाने का एक उपाय उन्हें पुनर्विक्रय करना है।
ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +geom_point(aes(color = factor(gear)))
कोड स्पष्टीकरण
- आप x और y वेरिएबल्स को लॉग () में सीधे एईएस () मैपिंग में बदलते हैं।
ध्यान दें कि किसी भी अन्य परिवर्तन को मानकीकरण या सामान्यीकरण के रूप में लागू किया जा सकता है।
आउटपुट:
फिट मूल्यों के साथ स्कैटर प्लॉट
आप ग्राफ़ में अन्य स्तर की जानकारी जोड़ सकते हैं। आप एक रेखीय प्रतिगमन के फिट किए गए मूल्य को प्लॉट कर सकते हैं।
my_graph <- ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +geom_point(aes(color = factor(gear))) +stat_smooth(method = "lm",col = "#C42126",se = FALSE,size = 1)my_graph
कोड स्पष्टीकरण
- ग्राफ: आप अपने ग्राफ को चर ग्राफ में संग्रहीत करते हैं। यह आगे के उपयोग या कोड की बहुत जटिल रेखा से बचने के लिए सहायक है
- चौरसाई विधि के लिए तर्क stat_smooth () नियंत्रण करता है
- विधि = "एलएम": रैखिक प्रतिगमन
- col = "# C42126": लाइन के लाल रंग के लिए कोड
- se = FALSE: मानक त्रुटि प्रदर्शित न करें
- आकार = 1: पंक्ति का आकार 1 है
आउटपुट:
ध्यान दें कि अन्य चौरसाई तरीके उपलब्ध हैं
- चमक
- गम
- loess: डिफ़ॉल्ट मान
- किनारा
ग्राफ़ में जानकारी जोड़ें
अब तक, हमने ग्राफ़ में जानकारी नहीं जोड़ी है। रेखांकन जानकारीपूर्ण होने की जरूरत है। पाठक को डेटा विश्लेषण के पीछे की कहानी को केवल अतिरिक्त दस्तावेज का जिक्र किए बिना ग्राफ को देखकर देखना चाहिए। इसलिए, ग्राफ़ को अच्छे लेबल की आवश्यकता होती है। आप प्रयोगशालाओं () फ़ंक्शन के साथ लेबल जोड़ सकते हैं।
लैब के लिए मूल सिंटैक्स () है:
lab(title = "Hello Guru99")argument:- title: Control the title. It is possible to change or add title with:- subtitle: Add subtitle below title- caption: Add caption below the graph- x: rename x-axis- y: rename y-axisExample:lab(title = "Hello Guru99", subtitle = "My first plot")
एक शीर्षक जोड़ें
जोड़ने के लिए एक अनिवार्य जानकारी स्पष्ट रूप से एक शीर्षक है।
my_graph +labs(title = "Plot Mile per hours and drat, in log")
कोड स्पष्टीकरण
- my_graph: आपके द्वारा संग्रहीत ग्राफ़ का उपयोग करते हैं। यह हर बार जब आप ग्राफ में नई जानकारी जोड़ते हैं तो सभी कोड को दोबारा लिखने से बचते हैं।
- आप शीर्षक को लैब के अंदर लपेटते हैं ()।
- लाइन के लाल रंग के लिए कोड
- se = FALSE: मानक त्रुटि प्रदर्शित न करें
- आकार = 1: पंक्ति का आकार 1 है
आउटपुट:
एक गतिशील नाम के साथ एक शीर्षक जोड़ें
शीर्षक में अधिक सटीक जानकारी जोड़ने के लिए एक गतिशील शीर्षक सहायक है।
आप स्थैतिक पाठ और गतिशील पाठ को मुद्रित करने के लिए पेस्ट () फ़ंक्शन का उपयोग कर सकते हैं। पेस्ट का मूल सिंटैक्स है:
paste("This is a text", A)arguments- " ": Text inside the quotation marks are the static text- A: Display the variable stored in A- Note you can add as much static text and variable as you want. You need to separate them with a comma
उदाहरण:
A <-2010paste("The first year is", A)
आउटपुट:
## [1] "The first year is 2010"
B <-2018paste("The first year is", A, "and the last year is", B)
आउटपुट:
## [1] "The first year is 2010 and the last year is 2018"
आप हमारे ग्राफ में एक डायनामिक नाम जोड़ सकते हैं, जिसका नाम है mpg का औसत।
mean_mpg <- mean(mtcars$mpg)my_graph + labs(title = paste("Plot Mile per hours and drat, in log. Average mpg is", mean_mpg))
कोड स्पष्टीकरण
- आप माध्य (mtcars $ mpg) के साथ mpg का औसत बनाते हैं जो माध्य_mpg चर में संग्रहीत होता है
- आप mpg का माध्य मान लौटाते हुए डायनामिक शीर्षक बनाने के लिए mean_mpg के साथ पेस्ट का उपयोग करते हैं
आउटपुट:
एक उपशीर्षक जोड़ें
दो अतिरिक्त विवरण आपके ग्राफ को और अधिक स्पष्ट कर सकते हैं। आप उपशीर्षक और कैप्शन के बारे में बात कर रहे हैं। उपशीर्षक शीर्षक के ठीक नीचे जाता है। कैप्शन से सूचित किया जा सकता है कि गणना और डेटा के स्रोत को किसने किया।
my_graph +labs(title ="Relation between Mile per hours and drat",subtitle ="Relationship break down by gear class",caption = "Authors own computation")
कोड स्पष्टीकरण
- लैब के अंदर (), आपने जोड़ा:
- शीर्षक = "प्रति घंटे माइल और ड्रैट के बीच संबंध": शीर्षक जोड़ें
- उपशीर्षक = "गियर क्लास द्वारा संबंध विच्छेद": उपशीर्षक जोड़ें
- कैप्शन = "लेखक स्वयं की गणना: कैप्शन जोड़ें
- आप प्रत्येक नई जानकारी को अल्पविराम से अलग करते हैं,
- ध्यान दें कि आप कोड की पंक्तियों को तोड़ते हैं। यह अनिवार्य नहीं है, और यह केवल कोड को अधिक आसानी से पढ़ने में मदद करता है
आउटपुट:
X- अक्ष और y- अक्ष का नाम बदलें
डेटासेट में चर हमेशा स्पष्ट नहीं हो सकते हैं या कई शब्दों (यानी GDP_CAP) होने पर कन्वेंशन _ का उपयोग करते हैं। आप इस तरह का नाम अपने ग्राफ में प्रकट नहीं करना चाहते हैं। इकाइयों की तरह नाम बदलना या अधिक विवरण जोड़ना महत्वपूर्ण है।
my_graph +labs(x = "Drat definition",y = "Mile per hours",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")
कोड स्पष्टीकरण
- लैब के अंदर (), आपने जोड़ा:
- x = "Drat परिभाषा": x- अक्ष का नाम बदलें
- y = "प्रति घंटे मील": y- अक्ष का नाम बदलें
आउटपुट:
तराजू पर नियंत्रण रखें
आप अक्ष के पैमाने को नियंत्रित कर सकते हैं।
फ़ंक्शन seq () सुविधाजनक है जब आपको संख्या का क्रम बनाने की आवश्यकता होती है। मूल वाक्यविन्यास है:
seq(begin, last, by = x)arguments:- begin: First number of the sequence- last: Last number of the sequence- by= x: The step. For instance, if x is 2, the code adds 2 to `begin-1` until it reaches `last`
उदाहरण के लिए, यदि आप 3 के एक चरण के साथ 0 से 12 तक की सीमा बनाना चाहते हैं, तो आपके पास चार नंबर होंगे, 0 4 8 12
seq(0, 12,4)
आउटपुट:
## [1] 0 4 8 12
आप नीचे के रूप में x- अक्ष और y- अक्ष के पैमाने को नियंत्रित कर सकते हैं
my_graph +scale_x_continuous(breaks = seq(1, 3.6, by = 0.2)) +scale_y_continuous(breaks = seq(1, 1.6, by = 0.1)) +labs(x = "Drat definition",y = "Mile per hours",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")
कोड स्पष्टीकरण
- फ़ंक्शन स्केल_y_continuous () y- अक्ष को नियंत्रित करता है
- फ़ंक्शन पैमाना_x_continuous () x- अक्ष को नियंत्रित करता है ।
- पैरामीटर ब्रेक अक्ष के विभाजन को नियंत्रित करता है। आप मैन्युअल रूप से संख्या का क्रम जोड़ सकते हैं या seq () फ़ंक्शन का उपयोग कर सकते हैं:
- seq (1, 3.6, = 0.2 से): 3 के एक चरण के साथ 2.4 से 3.4 तक छह नंबर बनाएं
- seq (1, 1.6, by = 0.1): 1 के एक चरण के साथ 1 से 1.6 तक सात नंबर बनाएं
आउटपुट:
विषय
अंत में, आर हमें विभिन्न विषयों के साथ प्लॉट को अनुकूलित करने की अनुमति देता है। पुस्तकालय ggplot2 में आठ विषय शामिल हैं:
- theme_bw ()
- theme_light ()
- theme_classis ()
- theme_iltraw ()
- theme_dark ()
- theme_minimal ()
- theme_gray ()
- theme_void ()
my_graph +theme_dark() +labs(x = "Drat definition, in log",y = "Mile per hours, in log",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")
आउटपुट:
भूखंडों को बचाएं
इन सभी चरणों के बाद, यह आपके ग्राफ को बचाने और साझा करने का समय है। आप ग्राफ को प्लॉट करने के ठीक बाद ggsave ('NAME OF FILE) जोड़ते हैं और इसे हार्ड ड्राइव पर स्टोर किया जाएगा।
ग्राफ कार्यशील निर्देशिका में सहेजा गया है। कार्यशील निर्देशिका की जाँच करने के लिए, आप इस कोड को चला सकते हैं:
directory <-getwd()directory
चलो अपने शानदार ग्राफ को प्लॉट करते हैं, इसे सहेजते हैं और स्थान की जांच करते हैं
my_graph +theme_dark() +labs(x = "Drat definition, in log",y = "Mile per hours, in log",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")
आउटपुट:
ggsave("my_fantastic_plot.png.webp")
आउटपुट:
## Saving 5 x 4 in image
नोट : केवल शैक्षणिक उद्देश्य के लिए, हमने आपके लिए निर्देशिका फ़ोल्डर खोलने के लिए open_folder () नामक एक फ़ंक्शन बनाया। आपको बस नीचे दिए गए कोड को चलाने की जरूरत है और देखें कि चित्र कहाँ संग्रहीत है। आपको my_fantastic_plot.png.webp नाम की एक फ़ाइल देखनी चाहिए।
# Run this code to create thefunctionopen_folder <- function(dir) {if (.Platform['OS.type'] == "windows") {shell.exec(dir)} else {system(paste(Sys.getenv("R_BROWSER"), dir))}}# Call thefunction to open the folder open_folder(directory)
सारांश
आप नीचे दी गई तालिका में स्कैटर प्लॉट बनाने के लिए तर्कों को संक्षेप में प्रस्तुत कर सकते हैं:
उद्देश्य |
कोड |
---|---|
मूल बिखराव की साजिश |
ggplot(df, aes(x = x1, y = y)) + geom_point() |
रंग समूह के साथ स्कैटर प्लॉट |
ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) + stat_smooth(method = "lm") |
फिट मान जोड़ें |
ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) |
शीर्षक जोड़ें |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(title = paste("Hello Guru99")) |
उपशीर्षक जोड़ें |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(subtitle = paste("Hello Guru99")) |
नाम बदलें x |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(x = "X1") |
का नाम बदला |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(y = "y1") |
पैमाने पर नियंत्रण रखें |
ggplot(df, aes(x = x1, y = y)) + geom_point() + scale_y_continuous(breaks = seq(10, 35, by = 10)) + scale_x_continuous(breaks = seq(2, 5, by = 1) |
लॉग बनाएं |
ggplot(df, aes(x =log(x1), y = log(y))) + geom_point() |
विषय |
ggplot(df, aes(x = x1, y = y)) + geom_point() + theme_classic() |
सहेजें |
ggsave("my_fantastic_plot.png.webp") |