Scatter Plot σε R χρησιμοποιώντας ggplot2 (με Παράδειγμα)

Πίνακας περιεχομένων:

Anonim

Τα γραφήματα είναι το τρίτο μέρος της διαδικασίας ανάλυσης δεδομένων. Το πρώτο μέρος αφορά την εξαγωγή δεδομένων , το δεύτερο μέρος αφορά τον καθαρισμό και τον χειρισμό των δεδομένων . Επιτέλους, ο επιστήμονας δεδομένων μπορεί να χρειαστεί να γνωστοποιήσει τα αποτελέσματά του γραφικά .

Η εργασία του επιστήμονα δεδομένων μπορεί να αναθεωρηθεί στην παρακάτω εικόνα

  • Το πρώτο καθήκον ενός επιστήμονα δεδομένων είναι να καθορίσει μια ερευνητική ερώτηση. Αυτή η ερευνητική ερώτηση εξαρτάται από τους στόχους και τους στόχους του έργου.
  • Μετά από αυτό, ένα από τα πιο εμφανή καθήκοντα είναι η μηχανική χαρακτηριστικών. Ο επιστήμονας δεδομένων πρέπει να συλλέξει, να χειριστεί και να καθαρίσει τα δεδομένα
  • Όταν ολοκληρωθεί αυτό το βήμα, μπορεί να αρχίσει να εξερευνά το σύνολο δεδομένων. Μερικές φορές, είναι απαραίτητο να βελτιώσετε και να αλλάξετε την αρχική υπόθεση λόγω μιας νέας ανακάλυψης.

  • Όταν επιτευχθεί η επεξηγηματική ανάλυση, ο επιστήμονας δεδομένων πρέπει να εξετάσει την ικανότητα του αναγνώστη να κατανοήσει τις υποκείμενες έννοιες και μοντέλα .
  • Τα αποτελέσματά του πρέπει να παρουσιάζονται σε μορφή που όλοι οι ενδιαφερόμενοι μπορούν να κατανοήσουν. Μία από τις καλύτερες μεθόδους για την ανακοίνωση των αποτελεσμάτων είναι μέσω γραφήματος .
  • Τα γραφήματα είναι ένα απίστευτο εργαλείο για την απλοποίηση της σύνθετης ανάλυσης.

Σε αυτό το σεμινάριο, θα μάθετε-

  • πακέτο ggplot2
  • Διάγραμμα διασποράς
  • Αλλαγή άξονα
  • Οικόπεδο διασποράς με προσαρμοσμένες τιμές
  • Προσθέστε πληροφορίες στο γράφημα
  • Μετονομάστε τον άξονα x και τον άξονα y
  • Ελέγξτε τις ζυγαριές
  • Θέμα
  • Αποθήκευση οικόπεδων

πακέτο ggplot2

Αυτό το μέρος του σεμιναρίου επικεντρώνεται στον τρόπο δημιουργίας γραφημάτων / γραφημάτων με R.

Σε αυτό το σεμινάριο, πρόκειται να χρησιμοποιήσετε το πακέτο ggplot2. Αυτό το πακέτο βασίζεται στη συνεπή βάση του βιβλίου Γραμματική των γραφικών που γράφτηκε από τον Wilkinson, 2005. Το ggplot2 είναι πολύ ευέλικτο, ενσωματώνει πολλά θέματα και προδιαγραφές γραφικών σε υψηλό επίπεδο αφαίρεσης. Με το ggplot2, δεν μπορείτε να σχεδιάσετε τρισδιάστατα γραφικά και να δημιουργήσετε διαδραστικά γραφικά.

Στο 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. Ξεκινάτε σχεδιάζοντας ένα scatterplot της μεταβλητής mpg και drat.

Βασικό διάγραμμα διασποράς

library(ggplot2)ggplot(mtcars, aes(x = drat, y = mpg)) +geom_point()

Επεξήγηση κώδικα

  • Πρώτα μεταβιβάζετε το σύνολο δεδομένων mtcars στο ggplot.
  • Μέσα στο όρισμα aes (), προσθέτετε τον άξονα x και τον άξονα y.
  • Το σύμβολο + σημαίνει ότι θέλετε το R να συνεχίσει να διαβάζει τον κωδικό. Κάνει τον κώδικα πιο ευανάγνωστο σπάζοντάς τον.
  • Χρησιμοποιήστε το geom_point () για το γεωμετρικό αντικείμενο.

Παραγωγή:

Οικόπεδο διασποράς με ομάδες

Μερικές φορές, μπορεί να είναι ενδιαφέρον να διακρίνουμε τις τιμές από μια ομάδα δεδομένων (δηλαδή δεδομένα επιπέδου παράγοντα).

ggplot(mtcars, aes(x = mpg, y = drat)) +geom_point(aes(color = factor(gear)))

Επεξήγηση κώδικα

  • Το aes () μέσα στο geom_point () ελέγχει το χρώμα της ομάδας. Η ομάδα πρέπει να είναι μια μεταβλητή παράγοντα. Έτσι, μετατρέπετε τη μεταβλητή ταχύτητα σε έναν παράγοντα.
  • Συνολικά, έχετε τον κωδικό aes (color = factor (gear)) που αλλάζει το χρώμα των κουκκίδων.

Παραγωγή:

Αλλαγή άξονα

Η μεταπώληση των δεδομένων αποτελεί μεγάλο μέρος της εργασίας των επιστημόνων δεδομένων. Σε σπάνιες περιπτώσεις τα δεδομένα έρχονται σε ωραίο σχήμα καμπάνας. Μία λύση για να κάνετε τα δεδομένα σας λιγότερο ευαίσθητα σε ακραίες τιμές είναι να τα επαναπωλήσετε.

ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +geom_point(aes(color = factor(gear)))

Επεξήγηση κώδικα

  • Μπορείτε να μεταμορφώσετε τις μεταβλητές x και y στο log () απευθείας μέσα στην αντιστοίχιση aes ().

Σημειώστε ότι μπορεί να εφαρμοστεί οποιοσδήποτε άλλος μετασχηματισμός όπως τυποποίηση ή κανονικοποίηση.

Παραγωγή:

Οικόπεδο διασποράς με προσαρμοσμένες τιμές

Μπορείτε να προσθέσετε ένα άλλο επίπεδο πληροφοριών στο γράφημα. Μπορείτε να σχεδιάσετε την προσαρμοσμένη τιμή μιας γραμμικής παλινδρόμησης.

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 () ελέγχει για τη μέθοδο εξομάλυνσης
  • μέθοδος = "lm": Γραμμική παλινδρόμηση
  • col = "# C42126": Κωδικός για το κόκκινο χρώμα της γραμμής
  • se = FALSE: Μην εμφανίζετε το τυπικό σφάλμα
  • size = 1: το μέγεθος της γραμμής είναι 1

Παραγωγή:

Σημειώστε ότι υπάρχουν και άλλες μέθοδοι εξομάλυνσης

  • γλαμ
  • γκαμ
  • loess: προεπιλεγμένη τιμή
  • χείλος

Προσθέστε πληροφορίες στο γράφημα

Μέχρι στιγμής, δεν έχουμε προσθέσει πληροφορίες στα γραφήματα. Τα γραφήματα πρέπει να είναι ενημερωτικά. Ο αναγνώστης πρέπει να δει την ιστορία πίσω από την ανάλυση δεδομένων κοιτάζοντας μόνο το γράφημα χωρίς να αναφέρει πρόσθετα έγγραφα. Ως εκ τούτου, τα γραφήματα χρειάζονται καλές ετικέτες. Μπορείτε να προσθέσετε ετικέτες με τη λειτουργία labs ().

Η βασική σύνταξη για το εργαστήριο () είναι:

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: Μην εμφανίζετε το τυπικό σφάλμα
  • size = 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 <-2018

paste("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))

Επεξήγηση κώδικα

  • Μπορείτε να δημιουργήσετε το μέσο όρο του mpg με μέσο όρο (mtcars $ mpg) αποθηκευμένο στη μεταβλητή mean_mpg
  • Χρησιμοποιείτε την επικόλληση () με το μέσο_mpg για να δημιουργήσετε έναν δυναμικό τίτλο που επιστρέφει τη μέση τιμή του mpg

Παραγωγή:

Προσθέστε έναν υπότιτλο

Δύο επιπλέον λεπτομέρειες μπορούν να κάνουν το γράφημα πιο σαφές. Μιλάτε για τον υπότιτλο και τη λεζάντα. Ο υπότιτλος πηγαίνει ακριβώς κάτω από τον τίτλο. Η λεζάντα μπορεί να ενημερώσει για το ποιος έκανε τον υπολογισμό και την πηγή των δεδομένων.

my_graph +labs(title ="Relation between Mile per hours and drat",subtitle ="Relationship break down by gear class",caption = "Authors own computation")

Επεξήγηση κώδικα

  • Μέσα στο εργαστήριο (), προσθέσατε:
    • title = "Σχέση μεταξύ Mile ανά ώρα και drat": Προσθήκη τίτλου
    • subtitle = "Κατανομή σχέσης ανά κατηγορία γραναζιών": Προσθήκη υπότιτλου
    • caption = "Συγγραφείς δικοί τους υπολογισμοί: Προσθήκη λεζάντας
    • Διαχωρίζετε κάθε νέα πληροφορία με κόμμα,,
  • Σημειώστε ότι σπάτε τις γραμμές του κώδικα. Δεν είναι υποχρεωτικό και βοηθά μόνο στην πιο εύκολη ανάγνωση του κώδικα

Παραγωγή:

Μετονομάστε τον άξονα 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 = "Mile ανά ώρα": Αλλάξτε το όνομα του άξονα 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`

Για παράδειγμα, εάν θέλετε να δημιουργήσετε μια περιοχή από 0 έως 12 με ένα βήμα 3, θα έχετε τέσσερις αριθμούς, 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")

Επεξήγηση κώδικα

  • Η συνάρτηση scale_y_continuous () ελέγχει τον άξονα y
  • Η συνάρτηση scale_x_continuous () ελέγχει τον άξονα x .
  • Η διακοπή παραμέτρου ελέγχει τη διάσπαση του άξονα. Μπορείτε να προσθέσετε χειροκίνητα την ακολουθία του αριθμού ή να χρησιμοποιήσετε τη συνάρτηση seq ():
    • seq (1, 3.6, by = 0.2): Δημιουργήστε έξι αριθμούς από 2,4 έως 3,4 με ένα βήμα 3
    • seq (1, 1.6, από = 0.1): Δημιουργήστε επτά αριθμούς από 1 έως 1.6 με ένα βήμα 1

Παραγωγή:

Θέμα

Τέλος, το R μας επιτρέπει να προσαρμόσουμε την πλοκή με διαφορετικά θέματα. Η βιβλιοθήκη ggplot2 περιλαμβάνει οκτώ θέματα:

  • theme_bw ()
  • theme_light ()
  • theme_classis ()
  • theme_linedraw ()
  • theme_dark ()
  • θέμα_ελάχιστο ()
  • θέμα_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 («ΟΝΟΜΑ ΤΟΥ ΑΡΧΕΙΟΥ) αμέσως μετά τη γραφική παράσταση του γραφήματος και θα αποθηκευτεί στον σκληρό δίσκο.

Το γράφημα αποθηκεύεται στον κατάλογο εργασίας. Για να ελέγξετε τον κατάλογο εργασίας, μπορείτε να εκτελέσετε αυτόν τον κωδικό:

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")

Μετονομασία y

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")