Ggplot2 में बॉक्सप्लॉट में आउटलेर्स को कैसे लेबल करें


यह ट्यूटोरियल ggplot2 में बॉक्सप्लॉट में आउटलेर्स को कैसे लेबल करें, इसका चरण-दर-चरण उदाहरण प्रदान करता है।

चरण 1: डेटा फ़्रेम बनाएं

सबसे पहले, आइए निम्नलिखित डेटा फ़्रेम बनाएं जिसमें तीन अलग-अलग टीमों के 60 अलग-अलग बास्केटबॉल खिलाड़ियों द्वारा बनाए गए अंकों के बारे में जानकारी शामिल है:

 #make this example reproducible
set. seeds (1)

#create data frame
df <- data. frame (team=rep(c('A', 'B', 'C'), each= 20 ),
                 player=rep(LETTERS[1:20], times= 3 ),
                 points=round(rnorm(n=60, mean=30, sd=10), 2))

#view head of data frame
head(df)

  team player points
1 AA 23.74
2AB 31.84
3 AC 21.64
4AD 45.95
5 AE 33.30
6 FY 21.80

नोट : हमने यह सुनिश्चित करने के लिए set.seed() फ़ंक्शन का उपयोग किया कि यह उदाहरण प्रतिलिपि प्रस्तुत करने योग्य है।

चरण 2: आउटलेर्स की पहचान करने के लिए एक फ़ंक्शन को परिभाषित करें

Ggplot2 में, एक अवलोकन को एक बाहरी के रूप में परिभाषित किया गया है यदि यह निम्नलिखित दो आवश्यकताओं में से एक को पूरा करता है:

  • अवलोकन प्रथम चतुर्थक (Q1) के नीचे अंतरचतुर्थक सीमा का 1.5 गुना है
  • अवलोकन तीसरे चतुर्थक (Q3) के ऊपर अंतरचतुर्थक सीमा का 1.5 गुना है।

यदि वे इन दो आवश्यकताओं में से एक को पूरा करते हैं तो हम टिप्पणियों को आउटलेयर के रूप में लेबल करने के लिए आर में निम्नलिखित फ़ंक्शन बना सकते हैं:

 find_outlier <- function (x) {
  return (x < quantile(x, .25) - 1.5*IQR(x) | x > quantile(x, .75) + 1.5*IQR(x))
}

संबंधित: इंटरक्वेर्टाइल रेंज की व्याख्या कैसे करें

चरण 3: ggplot2 में बॉक्सप्लॉट में आउटलेर्स को लेबल करें

फिर हम ggplot2 में बॉक्सप्लॉट में आउटलेर्स को लेबल करने के लिए निम्नलिखित कोड का उपयोग कर सकते हैं:

 library (ggplot2)
library (dplyr)

#add new column to data frame that indicates if each observation is an outlier
df <- df %>%
        group_by(team) %>%
        mutate(outlier = ifelse(find_outlier(points), points, NA))

#create box plot of points by team and label outliers
ggplot(df, aes(x=team, y=points)) +
  geom_boxplot() +
  geom_text(aes(label=outlier), na. rm = TRUE , hjust= -.5 ) 

ggplot2 में बॉक्सप्लॉट में आउटलेर्स को लेबल करें

ध्यान दें कि ग्राफ़ में दो आउटलेर्स लेबल किए गए हैं।

पहला आउटलायर टीम ए का एक खिलाड़ी है जिसने 7.85 अंक बनाए हैं और दूसरा आउटलायर टीम बी का एक खिलाड़ी है जिसने 10.11 अंक बनाए हैं।

ध्यान दें कि हम इन आउटलेर्स को लेबल करने के लिए एक अलग वेरिएबल का भी उपयोग कर सकते हैं।

उदाहरण के लिए, हम खिलाड़ी के नाम के आधार पर आउटलेर्स को लेबल करने के लिए mutate() फ़ंक्शन में खिलाड़ी के बिंदुओं को स्वैप कर सकते हैं:

 library (ggplot2)
library (dplyr)

#add new column to data frame that indicates if each observation is an outlier
df <- df %>%
        group_by(team) %>%
        mutate(outlier = ifelse(find_outlier(points), player, NA))

#create box plot of points by team and label outliers
ggplot(df, aes(x=team, y=points)) +
  geom_boxplot() +
  geom_text(aes(label=outlier), na. rm = TRUE , hjust= -.5 ) 

टीम ए के बाहरी हिस्से में अब एक लेबल एन है और टीम बी के बाहरी हिस्से में अब एक लेबल डी है, क्योंकि ये उन खिलाड़ियों के नाम दर्शाते हैं जिनके पास अंकों के लिए बाहरी हिस्से हैं।

ध्यान दें : geom_text() में hjust तर्क का उपयोग लेबल को क्षैतिज रूप से दाईं ओर धकेलने के लिए किया जाता है ताकि यह प्लॉट बिंदु को ओवरलैप न करे।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि ggplot2 में अन्य सामान्य कार्य कैसे करें:

Ggplot2 में फ़ॉन्ट आकार कैसे बदलें
Ggplot2 में एक लीजेंड को कैसे हटाएं
Ggplot2 में अक्ष लेबल को कैसे घुमाएँ

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *