boxplot() στο R: How to Make BoxΟικόπεδα στο RStudio [Παραδείγματα]
boxplot() στο R
boxplot() στο R βοηθά στην οπτικοποίηση της κατανομής των δεδομένων ανά τεταρτημόριο και στην ανίχνευση της παρουσίας ακραίων τιμών. Μπορείτε να χρησιμοποιήσετε το γεωμετρικό αντικείμενο geom_boxplot() από τη βιβλιοθήκη ggplot2 για να σχεδιάσετε ένα boxplot() στο R.
Θα χρησιμοποιήσουμε το σύνολο δεδομένων ποιότητας αέρα για να εισαγάγουμε το boxplot() στο R με το ggplot. Αυτό το σύνολο δεδομένων μετρά την ποιότητα αέρα της Νέας Υόρκης από τον Μάιο έως τον Σεπτέμβριο του 1973. Το σύνολο δεδομένων περιέχει 154 παρατηρήσεις. Θα χρησιμοποιήσουμε τις ακόλουθες μεταβλητές:
- Όζον: Αριθμητική μεταβλητή
- Άνεμος: Αριθμητική μεταβλητή
- Μήνας: Μάιος έως Σεπτέμβριος. Αριθμητική μεταβλητή
Δημιουργία Box Οικόπεδο
Πριν ξεκινήσετε να δημιουργείτε το πρώτο σας boxplot() στο R, πρέπει να χειριστείτε τα δεδομένα ως εξής:
- Βήμα 1: Εισαγάγετε τα δεδομένα
- Βήμα 2: Απόρριψη περιττών μεταβλητών
- Βήμα 3: Μετατροπή Μήνα σε επίπεδο παράγοντα
- Βήμα 4: Δημιουργήστε μια νέα κατηγορική μεταβλητή που διαιρεί τον μήνα με τρία επίπεδα: αρχή, μέση και τέλος.
- Βήμα 5: Αφαιρέστε τις παρατηρήσεις που λείπουν
Όλα αυτά τα βήματα γίνονται με το dplyr και τον τελεστή pipeline %>%.
library(dplyr) library(ggplot2) # Step 1 data_air <- airquality % > % #Step 2 select(-c(Solar.R, Temp)) % > % #Step 3 mutate(Month = factor(Month, order = TRUE, labels = c("May", "June", "July", "August", "September")), #Step 4 day_cat = factor(ifelse(Day < 10, "Begin", ifelse(Day < 20, "Middle", "End"))))
Μια καλή πρακτική είναι να ελέγχετε τη δομή των δεδομένων με τη συνάρτηση glimpse().
glimpse(data_air)
Παραγωγή:
## Observations: 153 ## Variables: 5 ## $ Ozone <int> 41, 36, 12, 18, NA, 28, 23, 19, 8, NA, 7, 16, 11, 14, ... ## $ Wind <dbl> 7.4, 8.0, 12.6, 11.5, 14.3, 14.9, 8.6, 13.8, 20.1, 8.6... ## $ Month <ord> May, May, May, May, May, May, May, May, May, May, May,... ## $ Day <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,... ## $ day_cat <fctr> Begin, Begin, Begin, Begin, Begin, Begin, Begin, Begi...
Υπάρχουν NA στο σύνολο δεδομένων. Η αφαίρεσή τους είναι σοφή.
# Step 5 data_air_nona <-data_air %>% na.omit()
Βασικό οικόπεδο κουτιού
Ας σχεδιάσουμε το βασικό R boxplot() με την κατανομή του όζοντος ανά μήνα.
# Store the graph box_plot <- ggplot(data_air_nona, aes(x = Month, y = Ozone)) # Add the geometric object box plot box_plot + geom_boxplot()
Επεξήγηση κώδικα
- Αποθηκεύστε το γράφημα για περαιτέρω χρήση
- box_plot: Αποθηκεύετε το γράφημα στη μεταβλητή box_plot Είναι χρήσιμο για περαιτέρω χρήση ή αποφυγή πολύ περίπλοκης γραμμής κωδικών
- Προσθέστε το γεωμετρικό αντικείμενο του R boxplot()
- Μεταβιβάζετε το σύνολο δεδομένων data_air_nona στο ggplot boxplot.
- Μέσα στο όρισμα aes(), προσθέτετε τον άξονα x και τον άξονα y.
- Το σύμβολο + σημαίνει ότι θέλετε το R να συνεχίσει να διαβάζει τον κώδικα. Κάνει τον κώδικα πιο ευανάγνωστο σπάζοντας τον.
- Χρησιμοποιήστε το geom_boxplot() για να δημιουργήσετε ένα διάγραμμα πλαισίου
Παραγωγή:
Αλλαγή πλευράς του γραφήματος
Μπορείτε να αναστρέψετε την πλευρά του γραφήματος.
box_plot + geom_boxplot()+ coord_flip()
Επεξήγηση κώδικα
- box_plot: Χρησιμοποιείτε το γράφημα που αποθηκεύσατε. Αποφεύγει την επανεγγραφή όλων των κωδικών κάθε φορά που προσθέτετε νέες πληροφορίες στο γράφημα.
- geom_boxplot(): Δημιουργήστε boxplots() στο R
- coord_flip(): Αναστρέψτε την πλευρά του γραφήματος
Παραγωγή:
Αλλαγή χρώματος ακραίου
Μπορείτε να αλλάξετε το χρώμα, το σχήμα και το μέγεθος των ακραίων σημείων.
box_plot + geom_boxplot(outlier.colour = "red", outlier.shape = 2, outlier.size = 3) + theme_classic()
Επεξήγηση κώδικα
- outlier.colour=”red”: Ελέγξτε το χρώμα των ακραίων σημείων
- outlier.shape=2: Αλλάξτε το σχήμα του outlier. Το 2 αναφέρεται στο τρίγωνο
- outlier.size=3: Αλλάξτε το μέγεθος του τριγώνου. Το μέγεθος είναι ανάλογο του αριθμού.
Παραγωγή:
Προσθέστε μια συνοπτική στατιστική
Μπορείτε να προσθέσετε μια συνοπτική στατιστική στο R boxplot().
box_plot + geom_boxplot() + stat_summary(fun.y = mean, geom = "point", size = 3, color = "steelblue") + theme_classic()
Επεξήγηση κώδικα
- Η stat_summary() επιτρέπει την προσθήκη μιας σύνοψης στο οριζόντιο πλαίσιο R
- Το όρισμα fun.y ελέγχει τα στατιστικά που επιστρέφονται. Θα χρησιμοποιήσεις το μέσο
- Σημείωση: Άλλα στατιστικά στοιχεία είναι διαθέσιμα, όπως το ελάχιστο και το μέγιστο. Στο ίδιο γράφημα μπορούν να παρουσιαστούν περισσότερα από ένα στατιστικά στοιχεία
- geom = «σημείο»: Σχεδιάστε το μέσο όρο με ένα σημείο
- size=3: Μέγεθος του σημείου
- color =”steelblue”: Χρώμα των σημείων
Παραγωγή:
Box Οικόπεδο με τελείες
Στο επόμενο οριζόντιο διάγραμμα πλαισίου R, προσθέτετε τα επίπεδα γραφικής παράστασης με κουκκίδες. Κάθε τελεία αντιπροσωπεύει μια παρατήρηση.
box_plot + geom_boxplot() + geom_dotplot(binaxis = 'y', dotsize = 1, stackdir = 'center') + theme_classic()
Επεξήγηση κώδικα
- Η geom_dotplot() επιτρέπει την προσθήκη κουκκίδας στο πλάτος του κάδου
- binaxis='y': Αλλάξτε τη θέση των κουκκίδων κατά μήκος του άξονα y. Από προεπιλογή, άξονας x
- dotsize=1: Μέγεθος των κουκκίδων
- stackdir='center': Τρόπος στοίβαξης των κουκκίδων: Τέσσερις τιμές:
- "πάνω" (προεπιλογή),
- "κάτω"
- "κέντρο"
- «Κέντρο»
Παραγωγή:
Έλεγχος Αισθητική του Box Οικόπεδο
Αλλάξτε το χρώμα του κουτιού
Μπορείτε να αλλάξετε τα χρώματα της ομάδας.
ggplot(data_air_nona, aes(x = Month, y = Ozone, color = Month)) + geom_boxplot() + theme_classic()
Επεξήγηση κώδικα
- Τα χρώματα των ομάδων ελέγχονται στην αντιστοίχιση aes(). Μπορείτε να χρησιμοποιήσετε το color= Month για να αλλάξετε το χρώμα του κουτιού και του μουστάκι ανάλογα με τους μήνες
Παραγωγή:
Box οικόπεδο με πολλαπλές ομάδες
Είναι επίσης δυνατή η προσθήκη πολλών ομάδων. Μπορείτε να απεικονίσετε τη διαφορά στην ποιότητα του αέρα ανάλογα με την ημέρα της μέτρησης.
ggplot(data_air_nona, aes(Month, Ozone)) + geom_boxplot(aes(fill = day_cat)) + theme_classic()
Επεξήγηση κώδικα
- Η αντιστοίχιση aes() του γεωμετρικού αντικειμένου ελέγχει τις ομάδες που θα εμφανιστούν (αυτή η μεταβλητή πρέπει να είναι παράγοντας)
- Το aes(fill= day_cat) επιτρέπει τη δημιουργία τριών πλαισίων για κάθε μήνα στον άξονα x
Παραγωγή:
Box Οικόπεδο με κουκκίδες
Ένας άλλος τρόπος εμφάνισης της κουκκίδας είναι με τρεμάμενα σημεία. Είναι ένας βολικός τρόπος για να οπτικοποιήσετε σημεία με το boxplot για κατηγορικά δεδομένα στη μεταβλητή R.
Αυτή η μέθοδος αποφεύγει την επικάλυψη των διακριτών δεδομένων.
box_plot + geom_boxplot() + geom_jitter(shape = 15, color = "steelblue", position = position_jitter(width = 0.21)) + theme_classic()
Επεξήγηση κώδικα
- Η geom_jitter() προσθέτει μια μικρή αποσύνθεση σε κάθε σημείο.
- shape=15 αλλάζει το σχήμα των σημείων. Το 15 αντιπροσωπεύει τα τετράγωνα
- color = “ατσάλι μπλε”: Αλλάξτε το χρώμα του σημείου
- position=position_jitter(width = 0.21): Τρόπος τοποθέτησης των επικαλυπτόμενων σημείων. position_jitter(πλάτος = 0.21) σημαίνει ότι μετακινείτε τα σημεία κατά 20 τοις εκατό από τον άξονα x. Από προεπιλογή, 40 τοις εκατό.
Παραγωγή:
Μπορείτε να δείτε τη διαφορά μεταξύ του πρώτου γραφήματος με τη μέθοδο jitter και του δεύτερου με τη μέθοδο του σημείου.
box_plot + geom_boxplot() + geom_point(shape = 5, color = "steelblue") + theme_classic()
Οδοντωτός Box Οικόπεδο
Ένα ενδιαφέρον χαρακτηριστικό του geom_boxplot(), είναι μια οδοντωτή συνάρτηση πλαισίου στο R. Το γράφημα εγκοπής περιορίζει το πλαίσιο γύρω από τη διάμεσο. Ο κύριος σκοπός μιας γραφικής παράστασης με εγκοπή είναι να συγκρίνει τη σημασία της διάμεσης τιμής μεταξύ των ομάδων. Υπάρχουν ισχυρές ενδείξεις ότι δύο ομάδες έχουν διαφορετικές διάμεσες τιμές όταν οι εγκοπές δεν επικαλύπτονται. Μια εγκοπή υπολογίζεται ως εξής:
με είναι το μεσοτεταρτημόριο και ο αριθμός των παρατηρήσεων.
box_plot + geom_boxplot(notch = TRUE) + theme_classic()
Επεξήγηση κώδικα
- geom_boxplot(notch=TRUE): Δημιουργήστε ένα οριζόντιο πλαίσιο με εγκοπή R
Παραγωγή:
Περίληψη
Μπορούμε να συνοψίσουμε τους διαφορετικούς τύπους οριζόντιου πλαισίου R στον παρακάτω πίνακα:
Σκοπός | Κώδικας |
---|---|
Βασικό οικόπεδο κουτιού |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() |
γυρίστε την πλευρά |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + coord_flip() |
Οικόπεδο με εγκοπή |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot(notch=TRUE) |
Box οικόπεδο με ταραγμένες κουκκίδες |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + geom_jitter(position = position_jitter(0.21)) |
Ελέγξτε επίσης: - R Tutorial για αρχάριους: Μάθετε τη γλώσσα προγραμματισμού R