आर में लॉलीपॉप चार्ट कैसे बनाएं
बार चार्ट के समान, लॉलीपॉप चार्ट एक श्रेणीबद्ध चर के मात्रात्मक मूल्यों की तुलना करने के लिए उपयोगी है। बार का उपयोग करने के बजाय, लॉलीपॉप चार्ट मात्रात्मक मूल्यों को दर्शाने के लिए अंत में वृत्त वाली रेखाओं का उपयोग करता है।
लॉलीपॉप चार्ट चार्ट पर रंग की मात्रा को कम करते हुए कई श्रेणियों की तुलना करने का एक शानदार तरीका है और चार्ट पर लाइनों या अन्य ग्राफिक्स के विपरीत पाठक का ध्यान चार्ट पर वास्तविक मूल्यों पर केंद्रित करता है। कई लोग लॉलीपॉप बोर्ड को सौंदर्य की दृष्टि से भी मनभावन मानते हैं।
इस ट्यूटोरियल में, हम निम्नलिखित लॉलीपॉप चार्ट बनाने के लिए आवश्यक चरणों से गुजरेंगे:
उदाहरण: आर में लॉलीपॉप चार्ट
इस उदाहरण के लिए, हम mtcars में निर्मित R डेटासेट का उपयोग करेंगे:
#view first six rows of mtcars
head(mtcars)
एक बुनियादी लॉलीपॉप चार्ट
निम्नलिखित कोड दिखाता है कि कैसे डेटासेट में 32 कारों में से प्रत्येक के एमपीजी (मील प्रति गैलन) की तुलना करने के लिए लॉलीपॉप चार्ट बनाना।
कार के नाम डेटासेट के पंक्ति नामों में परिभाषित किए गए हैं, इसलिए हम पहले डेटासेट में एक नया कॉलम बनाते हैं जिसमें ये पंक्ति नाम होते हैं।
इसके बाद, हम ggplot2 लाइब्रेरी को लोड करते हैं, जिसका उपयोग हम लॉलीपॉप चार्ट बनाने के लिए करेंगे।
Ggplot2 के साथ, हम प्लॉट पर लाइनें बनाने के लिए geom_segment का उपयोग करते हैं। हम प्रारंभ और अंत x मानों को क्रमशः 0 और mpg के रूप में सेट करते हैं। हम प्रारंभ और अंत y मान को char के रूप में सेट करते हैं:
#create new column for car names mtcars$car <- row.names(mtcars) #load ggplot2 library library(ggplot2) #create lollipop chart ggplot(mtcars, aes(x = mpg, y = car)) + geom_segment(aes(x = 0, y = car, xend = mpg, yend = car)) + geom_point()
लेबल जोड़ना
हम लेबल और जियोम_टेक्स्ट तर्कों का उपयोग करके चार्ट में लेबल भी जोड़ सकते हैं:
ggplot(mtcars, aes(x = mpg, y = car, label = mpg )) + geom_segment(aes(x = 0, y = car, xend = mpg, yend = car)) + geom_point() + geom_text(nudge_x = 1.5)
या प्रत्येक पंक्ति के अंत में लेबल लगाने के बजाय, हम वृत्तों को बड़ा करके और लेबल के फ़ॉन्ट रंग को सफेद करके उन्हें स्वयं वृत्तों के अंदर रख सकते हैं:
ggplot(mtcars, aes(x = mpg, y = car, label = mpg)) + geom_segment(aes(x = 0, y = car, xend = mpg, yend = car)) + geom_point( size = 7 ) + geom_text( color = 'white', size = 2 )
मानों की औसत से तुलना करें
हम किसी विशिष्ट संख्या के मानों की तुलना करने के लिए लॉलीपॉप चार्ट का भी उपयोग कर सकते हैं। उदाहरण के लिए, हम डेटासेट में औसत mpg मान पा सकते हैं और फिर प्रत्येक कार के mpg की औसत से तुलना कर सकते हैं।
निम्नलिखित कोड औसत mpg मान ज्ञात करने के लिए dplyr लाइब्रेरी का उपयोग करता है और फिर कारों को mpg के आरोही क्रम में व्यवस्थित करता है:
#load library dplyr library(dplyr) #find mean value of mpg and arrange cars in order by mpg descending mtcars_new <- mtcars %>% arrange(mpg) %>% mutate(mean_mpg = mean(mpg), flag = ifelse(mpg - mean_mpg > 0, TRUE, FALSE), car = factor(car, levels = .$car)) #view first six rows of mtcars_new head(mtcars_new)
फिर निम्न कोड सर्कल के रंग को ध्वज मान (इस मामले में सही या गलत) के बराबर सेट करके और प्रत्येक कार के लिए शुरुआती x मान को औसत mpg मान के बराबर सेट करके लॉलीपॉप चार्ट बनाता है।
ggplot(mtcars_new, aes(x = mpg, y = car, color = flag )) + geom_segment(aes( x = mean_mpg , y = car, xend = mpg, yend = car)) + geom_point()
इस प्रकार के रंग पैलेट का उपयोग करके, हम आसानी से यह निर्धारित कर सकते हैं कि कौन सी कारों में डेटासेट औसत से कम और अधिक एमपीजी है।
डिफ़ॉल्ट रूप से, R अपने चार्ट रंगों के रूप में नीले और लाल का उपयोग करता है। हालाँकि, हम स्केल_कलर_मैनुअल तर्क का उपयोग करके किसी भी रंग का उपयोग कर सकते हैं:
ggplot(mtcars_new, aes(x = mpg, y = car, color = flag)) +
geom_segment(aes(x = mean_mpg, y = car, xend = mpg, yend = car)) +
geom_point() +
scale_color_manual(values = c("purple", "blue"))
चार्ट सौंदर्यशास्त्र बदलें
अंत में, हम चार्ट के सौंदर्यशास्त्र को और संशोधित करने और एक पेशेवर दिखने वाला अंतिम उत्पाद बनाने के लिए ggplot2 की व्यापक क्षमताओं का उपयोग कर सकते हैं:
ggplot(mtcars_new, aes(x = mpg, y = car, color = flag)) + geom_segment(aes(x = mean_mpg, y = car, xend = mpg, yend = car), color = "grey") + geom_point() + annotate("text", x = 27, y = 20, label = "Above Average", color = "#00BFC4", size = 3, hjust = -0.1, vjust = .75) + annotate("text", x = 27, y = 17, label = "Below Average", color = "#F8766D", size = 3, hjust = -0.1, vjust = -.1) + geom_segment(aes(x = 26.5, xend = 26.5, y = 19, yend = 23), arrow = arrow(length = unit(0.2,"cm")), color = "#00BFC4") + geom_segment(aes(x = 26.5, xend = 26.5, y = 18, yend = 14), arrow = arrow(length = unit(0.2,"cm")), color = "#F8766D") + labs(title = "Miles per Gallon by Car") + theme_minimal() + theme(axis.title = element_blank(), panel.grid.minor = element_blank(), legend.position = "none", text = element_text(family = "Georgia"), axis.text.y = element_text(size = 8), plot.title = element_text(size = 20, margin = margin(b = 10), hjust = 0), plot.subtitle = element_text(size = 12, color = "darkslategrey", margin = margin(b = 25, l = -25)), plot.caption = element_text(size = 8, margin = margin(t = 10), color = "grey70", hjust = 0))