Last chance! 50% off DataCamp Premium
Sale ends in
यह ट्यूटोरियल हमारे समुदाय का एक मूल्यवान योगदान है और स्पष्टता व सटीकता के लिए DataCamp द्वारा संपादित किया गया है।
क्या आप अपना स्वयं का अनुभव साझा करना चाहते हैं? हमें आपसे सुनकर खुशी होगी! आप हमारे कम्युनिटी कंट्रीब्यूशन फ़ॉर्म के माध्यम से अपने लेख या विचार भेज सकते हैं।
"वैश्विक ऊष्मीकरण कोई भविष्यवाणी नहीं है। यह हो रहा है" - जेम्स हैनसन
जलवायु परिवर्तन हम सभी को प्रभावित करने वाला एक तात्कालिक मुद्दा है, और डेटा विज़ुअलाइज़ेशन जागरूकता बढ़ाने का एक शक्तिशाली साधन हो सकता है। इस चरण-दर-चरण ट्यूटोरियल में, आप सीखेंगे कि R में ggplot2 का उपयोग करके ऐतिहासिक जलवायु डेटा के प्रभावशाली विज़ुअलाइज़ेशन कैसे बनाए जाएँ। इस गाइड के अंत तक, आप यह जानेंगे कि क्यूरेटेड डेटासेट कैसे खोजें, ऐतिहासिक मौसम डेटा कैसे प्लॉट करें, और अपनी कहानी प्रभावी ढंग से बताने के लिए ग्राफ़ को कैसे कस्टमाइज़ करें।
जलवायु परिवर्तन हम सभी को प्रभावित करने वाला एक तात्कालिक मुद्दा है, और डेटा विज़ुअलाइज़ेशन जागरूकता बढ़ाने का एक शक्तिशाली साधन हो सकता है। इस चरण-दर-चरण ट्यूटोरियल में, आप सीखेंगे कि R में ggplot2 का उपयोग करके ऐतिहासिक जलवायु डेटा के प्रभावशाली विज़ुअलाइज़ेशन कैसे बनाए जाएँ। इस गाइड के अंत तक, आप यह जानेंगे कि क्यूरेटेड डेटासेट कैसे खोजें, ऐतिहासिक मौसम डेटा कैसे प्लॉट करें, और अपनी कहानी प्रभावी ढंग से बताने के लिए ग्राफ़ को कैसे कस्टमाइज़ करें।
इस ट्यूटोरियल में, आप सीखेंगे कि विश्वसनीय और क्यूरेटेड ऐतिहासिक तापमान डेटा कहाँ से मिले और उसे ggplot2 के साथ कैसे विज़ुअलाइज़ करें।
इस ट्यूटोरियल के लिए डेटा National Centers for Environmental Information (NCEI) पर उपलब्ध है। NCEI अमेरिका में पर्यावरणीय डेटा की प्रमुख प्राधिकरण है और जलवायु, पारिस्थितिकी तंत्र और जल संसाधनों पर उच्च-गुणवत्ता का डेटा प्रदान करता है। Global Summary of the Year (GSOY) डेटासेट शहर और स्टेशन के अनुसार ऐतिहासिक मौसम डेटा प्रदान करता है। इस ट्यूटोरियल के लिए, हम Berkeley, CA का डेटा उपयोग करेंगे। यदि आप चाहें, तो आप अपनी पसंद का शहर चुन सकते हैं।
डेटा read_csv से लोड किया जाएगा। पहला आर्गुमेंट फ़ाइल पथ है, जबकि दूसरा, col_select, R को बताता है कि आप कौन से कॉलम लोड करना चाहते हैं। ध्यान दें कि इस डेटासेट में कई वेरिएबल हैं, पर हमें केवल "DATE" और "TAVG" में रुचि है। "DATE" में वह वर्ष होता है जब तापमान दर्ज किया गया और "TAVG" वार्षिक औसत तापमान है, जो सेल्सियस में दिया गया है। उपलब्ध वेरिएबल्स के बारे में अधिक जानने के लिए, कृपया डेटासेट कोडबुक देखें।
library(readr)23df <- read_csv('USC00040693.csv',4 col_select = c("DATE", "TAVG"))5Rows: 118 Columns: 2── Column specification ────────────────────────────────────────────────────────Delimiter: ","dbl (2): DATE, TAVGनीचे, आप अपने डेटासेट और इसके सारांक्षिक आँकड़े प्रिंट करेंगे ताकि डेटा की प्रारंभिक समझ बने। R का summary() फ़ंक्शन हमें बताता है कि डेटा 1893 से 2019 तक है और इस अवधि में Berkeley, CA में दर्ज न्यूनतम वार्षिक औसत तापमान 12.9 °C था। अधिकतम औसत तापमान 15.93 °C था।

summary(df) DATE TAVG Min. :1893 Min. :12.90 1st Qu.:1926 1st Qu.:13.50 Median :1956 Median :13.91 Mean :1956 Mean :13.97 3rd Qu.:1985 3rd Qu.:14.33 Max. :2019 Max. :15.93 NA's :33 summary() फ़ंक्शन से पता चला कि 33 तापमान मान गायब हैं। आप किसी विशिष्ट वेरिएबल के NAs को is.na() फ़ंक्शन का उपयोग करके भी जाँच सकते हैं, जो TRUE लौटाता है यदि प्रेक्षण NA है। फिर, आप सभी मिसिंग मानों का योग कर सकते हैं। sum() फ़ंक्शन TRUE को 1 में बदल देता है।
print(paste("There are", sum(is.na(df$TAVG)), "missing values in this dataset."))[1] "There are 33 missing values in this dataset."चूँकि हम टाइम सीरीज़ के साथ काम कर रहे हैं, हम मिसिंग मानों को रैखिक इंटरपोलेशन से भरेंगे। यह विधि मानती है कि मिसिंग अवधि के दौरान डेटा रैखिक रूप से बदला। वास्तव में, जब आप किसी टाइम सीरीज़ को लाइन प्लॉट से प्लॉट करते हैं, तो प्रेक्षणों के बीच के अंतराल—even जब कोई डेटा मिसिंग न हो—भी दो बिंदुओं को जोड़ती सीधी रेखा से भरे जाते हैं।
रैखिक इंटरपोलेशन करने के लिए, हम imputeTS पैकेज का उपयोग करेंगे। लाइब्रेरी इंस्टॉल और लोड करने के बाद, आप na_interpolation() का उपयोग करके मिसिंग मान भर सकते हैं। आप इसे दो आर्गुमेंट पास करते हैं। पहला, वह डेटा फ़्रेम कॉलम जिसे आप ट्रीट करना चाहते हैं, और दूसरा, वह विधि जिसका उपयोग आप इम्प्यूटेशन के लिए करना चाहते हैं।
install.packages("imputeTS", quiet = TRUE)library(imputeTS)Registered S3 method overwritten by 'quantmod': method from as.zoo.data.frame zoo df$TAVG <- na_interpolation(df$TAVG, option ="linear")एक ggplot2 विज़ुअलाइज़ेशन परतों से बना होता है। जैसा कि नीचे दिए गए चित्र में दिखाया गया है, हर परत में एक geom ऑब्जेक्ट होता है, यानी ग्राफ़ में दिखाई देने वाला कोई तत्व (जैसे रेखाएँ और बिंदु)।
सबसे पहले, आपको ggplot() फ़ंक्शन को एक डेटासेट पास करना होता है। दूसरे, आप वेरिएबल्स को एस्थेटिक्स से मैप करेंगे—यानी एक geom ऑब्जेक्ट के दृश्य गुण। एस्थेटिक्स में उदाहरण के लिए y-अक्ष पर स्थिति, x-अक्ष पर स्थिति, रंग या आकार शामिल हैं। ggplot के बारे में अधिक जानने के लिए, Rick Scavetta के Introduction to Data Visualization with ggplot2 कोर्स को देखें, जिससे मैंने डेटा विज़ुअलाइज़ेशन की कई कौशल सीखी हैं।

ggplot2 की परतें। चित्र लेखक द्वारा बनाया गया।
नीचे, हमारी मैपिंग (aes()) ggplot को बताती है कि x-अक्ष पर स्थिति को "DATE" वेरिएबल पर और y-अक्ष पर स्थिति को तापमान पर निर्भर बनाना है। ध्यान दें कि यदि आप केवल यह परत प्लॉट करते हैं, तो ggplot आपको केवल अक्ष दिखाएगा।
इसके अलावा, ggplot का उपयोग शुरू करने से पहले, हम कुछ वैश्विक विन्यास सेट करेंगे जिन्हें हम अपने सभी प्लॉट्स पर लागू करना चाहते हैं। पहला विन्यास प्लॉट का आकार और रेज़ॉल्यूशन है। दूसरा थीम है।
library(ggplot2)options(repr.plot.width = 10, repr.plot.height = 6, repr.plot.res = 150 )theme_set(theme_bw())axes <- ggplot(data = df, aes(x = DATE, y = TAVG))axes
अब आप समय के साथ तापमान दर्शाने वाले बिंदुओं की दूसरी परत जोड़ सकते हैं। ध्यान दें कि आप इस परत को पिछले चरण में बनाए गए प्लॉट में जोड़ सकते हैं।
dot_plot <- axes + geom_point()dot_plot
अंत में, आप रेखाओं वाली तीसरी परत जोड़ सकते हैं। यह रेखांकित करना महत्वपूर्ण है कि कुछ लेखकों का मानना है कि रेखाएँ प्रत्यक्ष प्रेक्षित डेटा का प्रतिनिधित्व नहीं करतीं और उनका सावधानीपूर्वक उपयोग करना चाहिए। विस्तृत चर्चा के लिए, कृपया Claus O. Wilke की Fundamentals of Data Visualization का अध्याय 13 देखें।
dot_plot +geom_line()
इस अनुभाग में, आप सीखेंगे कि अपने प्लॉट को स्पष्ट, सूचनात्मक और आकर्षक बनाने के लिए कैसे कस्टमाइज़ करें।
पहले, तापमान में वृद्धि को अधिक स्पष्ट करने के लिए, हम बिंदुओं के रंग एस्थेटिक को भी "TAVG" से मैप करेंगे। चूँकि यह एक संख्यात्मक वेरिएबल है, ggplot2 निरंतर मानों को रंगों के रूप में दर्शाने के लिए एक ग्रेडिएंट का उपयोग करेगा। आप scale_color_gradient() फ़ंक्शन से चुन सकते हैं कि कम तापमान कौन से रंग से और अधिक तापमान कौन से रंग से दर्शाए जाएँ।
साथ ही, आप क्रमशः xlab() और ylab() से x और y अक्षों के लेबल सेट कर सकते हैं। ggtitle() से शीर्षक जोड़ा जा सकता है। अंत में, हम बिंदुओं का आकार बढ़ाएँगे और पारदर्शिता जोड़ेंगे ताकि ओवरलैप्ड डेटा दिखाई दे।
ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size = 7, alpha = 0.8)+scale_color_gradient(name = "ºC", low = "#47BEFB", high = "#ED6AA8")+ggtitle("Historical air temperature trend in Berkeley, CA")+xlab("Year")+ylab("Annual Mean Temperature in Berkeley [ºC]")
एडवर्ड टफ्टी, जो डेटा विज़ुअलाइज़ेशन के क्षेत्र के विशेषज्ञ हैं, गैर-अतिरिक्त डेटा दिखाने में प्रयुक्त इंक के अनुपात को अधिकतम करने की सलाह देते हैं। लेखक का तर्क है कि इससे आपका प्लॉट अधिक स्पष्ट होता है और पाठक का ध्यान भटकने से बचता है।
हम जो ggplot2 थीम उपयोग कर रहे हैं (theme_bw()) वह पहले से ही टफ्टी की सिफारिशों के अनुरूप है, लेकिन हम ऊपर के प्लॉट में पैनल ग्रिड्स को और भी हटा सकते हैं। इसे प्राप्त करने के लिए, theme() फ़ंक्शन का उपयोग करें और इसमें दो आर्गुमेंट पास करें, panel.grid.minor = element_blank() और panel.grid.major = element_blank()।
ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size = 7, alpha = 0.8)+scale_color_gradient(name = "ºC", low = "#47BEFB", high = "#ED6AA8")+ggtitle("Historical air temperature trend in Berkeley, CA")+xlab("Year")+ylab("Annual Mean Temperature in Berkeley [ºC]")+theme(# Eliminates grids: panel.grid.minor = element_blank(), panel.grid.major = element_blank())
अब आप सीखेंगे कि अपनी स्वयं की ggplot2 थीम कैसे बनाएँ। उदाहरण के रूप में, हम एक theme_datacamp() बनाएँगे ताकि हमारा प्लॉट DataCamp वेबसाइट के साथ अधिक सुसंगत और सामंजस्यपूर्ण दिखे।
सबसे पहले, भविष्य में उपयोग के लिए कुछ DataCamp रंगों की एक सूची बनाई गई।
datacamp_colors <- list(green = "#74F065", darkblue = "#05192D", blue = "#47BEFB", pink = "#ED6AA8")दूसरे, हम अपने थीम में उपयोग के लिए "Manjari" नामक Google फ़ॉन्ट लोड करेंगे। आप इसे "showtext" पैकेज से आसानी से लोड कर सकते हैं। यदि यह आपके पास नहीं है, तो इसे इंस्टॉल करें।
install.packages("showtext", quiet = TRUE)नीचे, हम पैकेज लोड करते हैं और font_add_google() फ़ंक्शन से "Manjari" लोड करते हैं। हम showtext_auto() के साथ R को "showtext" का उपयोग करके पाठ रेंडर करने के लिए भी बताते हैं:
library(showtext)font_add_google("Manjari")showtext_auto()Loading required package: sysfontsLoading required package: showtextdbअब, हम theme() से ग्राफ़ को कस्टमाइज़ करेंगे। नीचे दिया गया चित्र कुछ आर्गुमेंट्स दिखाता है जिनका आप उपयोग कर सकते हैं। पूर्ण सूची के लिए, कृपया ggplot2 संदर्भ देखें।

थीम आर्गुमेंट्स। चित्र लेखक द्वारा बनाया गया।
आप एक नई थीम बना सकते हैं जिसमें एक फ़ंक्शन ggplot2 के theme() फ़ंक्शन को कॉल करता है और आपकी कस्टम विशिष्टताएँ शामिल करता है। ध्यान दें कि हम ब्लैक-एंड-व्हाइट थीम (theme_bw()) से शुरू करते हैं और फिर ग्रिड्स हटाते हैं तथा बैकग्राउंड, पैनल और टेक्स्ट के रंग बदलते हैं। इसके अलावा, प्लॉट में 0.5 सेमी मार्जिन जोड़ा जाता है। भविष्य में परिवर्तन को आसान बनाने के लिए, उपयोगकर्ता के लिए वांछित टेक्स्ट, पैनल और बैकग्राउंड रंग निर्दिष्ट करने हेतु दो आर्गुमेंट बनाए गए।
theme_datacamp <- function(text_panel_color, background_color) { theme_bw()+ theme(text=element_text(size=28, family="Manjari", face = "bold", color = text_panel_color), # Eliminates grids panel.grid.minor = element_blank(), panel.grid.major = element_blank(), # Changes panel, plot and legend background to dark blue panel.background = element_rect(fill = background_color), plot.background = element_rect(fill = background_color), legend.background = element_rect(fill= background_color), # Changes legend texts color to white legend.text = element_text(color = text_panel_color, margin = margin(0, 0, 0, -0.5, "cm")), legend.title = element_text(color = text_panel_color), legend.text.align = 0, # Changes color of plot border to white panel.border = element_rect(size = 1, color = text_panel_color), # Changes color of axis texts to white axis.text.x = element_text(color = text_panel_color), axis.text.y = element_text(color = text_panel_color), axis.title.x = element_text(color= text_panel_color), axis.title.y = element_text(color= text_panel_color), # Changes axis ticks color to white axis.ticks.y = element_line(color = text_panel_color), axis.ticks.x = element_line(color = text_panel_color), # Adds margin plot.margin = margin(1, 1, 1, 1, "cm") )}अब, आप बस अपने प्लॉट में theme_datacamp() जोड़ सकते हैं और अपनी पसंद के रंग निर्दिष्ट कर सकते हैं। यहाँ, मैंने Datacamp के रंगों का उपयोग किया है:
ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size = 7, alpha = 0.8)+scale_color_gradient(name = "ºC", low = datacamp_colors$blue, high = datacamp_colors$pink)+ggtitle("Historical air temperature trend in Berkeley, CA")+xlab("Year")+ylab("Annual Mean Temperature in Berkeley [ºC]")+theme_datacamp(text_panel_color = datacamp_colors$green, background_color = datacamp_colors$darkblue)
अंततः, आप LOESS (locally estimated scatterplot smoothing) स्मूथर के साथ तापमान प्रवृत्ति दिखा सकते हैं, जैसा कि Claus O. Wilke ने Fundamentals of Data Visualization के अध्याय 14 में अनुशंसित किया है। आप यह geom_smooth() तत्व वाली ggplot परत जोड़कर कर सकते हैं।
ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size = 7, alpha = 0.8)+geom_smooth(color = datacamp_colors$green, se = FALSE)+scale_color_gradient(name = "ºC", low = datacamp_colors$blue, high = datacamp_colors$pink)+ggtitle("Historical air temperature trend in Berkeley, CA", subtitle = "Visualization using theme_datacamp()")+xlab("Year")+ylab("Annual Mean Temperature in Berkeley [ºC]")+theme_datacamp(text_panel_color = datacamp_colors$green, background_color = datacamp_colors$darkblue)
सबसे प्रभावशाली विज़ुअलाइज़ेशन बनाने के लिए रंगों और फ़ॉन्ट्स के अन्य संयोजन स्वतंत्र रूप से आज़माएँ। नीचे, उदाहरण के लिए, मैं LOESS कर्व, पैनल और पाठ का रंग सफेद कर देता/देती हूँ।
ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size = 7, alpha = 0.8)+geom_smooth(color = "white", se = FALSE)+scale_color_gradient(name = "ºC", low = datacamp_colors$blue, high = datacamp_colors$pink)+ggtitle("Historical air temperature trend in Berkeley, CA", subtitle = "Visualization using theme_datacamp()")+xlab("Year")+ylab("Annual Mean Temperature in Berkeley [ºC]")+theme_datacamp(text_panel_color = "white", background_color = datacamp_colors$darkblue)
इस ट्यूटोरियल में, आपने सीखा कि R में ggplot2 का उपयोग करके ऐतिहासिक जलवायु डेटा का प्रभावी रूप से विज़ुअलाइज़ेशन कैसे किया जाए। हमने विश्वसनीय डेटा स्रोतों से लेकर एक कस्टम ggplot2 थीम बनाने तक सब कुछ कवर किया, ताकि आप डेटा विज़ुअलाइज़ेशन के माध्यम से जलवायु परिवर्तन के बारे में जागरूकता बढ़ाने में सक्षम हों।
अगले चरण के रूप में, DataCamp के Introduction to Data Visualization with ggplot2 और Intermediate R कोर्स के साथ डेटा विज़ुअलाइज़ेशन और R प्रोग्रामिंग में और गहराई से जाएँ। ये कोर्स यहाँ अर्जित कौशलों पर आधारित होकर आपको अधिक जटिल प्रोजेक्ट्स से निपटने में सक्षम बनाएँगे।