Οπτικοποίηση δεδομένων σε Python με Seaborn

python
οπτικοποίηση δεδομένων
seaborn
Οπτικοποίηση δεδομένων σε Python με Seaborn cover image

Σήμερα, ο πιο πολύτιμος πόρος στον κόσμο δεν είναι πλέον το πετρέλαιο, αλλά τα δεδομένα. Η οπτικοποίηση γίνεται πιο σημαντικό εργαλείο για την κατανόηση των δισεκατομμυρίων σειρών δεδομένων. Με τη μετάφραση των δεδομένων σε μια γραφική αναπαράσταση που είναι εύκολη στην ερμηνεία, η οπτικοποίηση δεδομένων βοηθά στην αφήγηση δεδομένων, επισημαίνοντας σχετικές πληροφορίες, μοτίβα και ακραίες τιμές. Ωστόσο, τα δεδομένα και τα γραφικά πρέπει να συνεργάζονται: Είναι η τέχνη της ενσωμάτωσης εξαιρετικής ανάλυσης με εξαιρετική αφήγηση. Σε αυτήν την ανάρτηση ιστολογίου, θα σας δείξουμε το "Sea Born", ένα από τα πιο γνωστά εργαλεία οπτικοποίησης γραμμένα σε Python.

Εργαλεία οπτικοποίησης

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

Seaborn

Το Seaborn είναι μια βιβλιοθήκη οπτικοποίησης δεδομένων Python που βασίζεται στοmatplotlib. Παρέχει μια διεπαφή υψηλού επιπέδου για τη σχεδίαση ελκυστικών και ενημερωτικών στατιστικών γραφικών.

Συναρτήσεις σχεδίασης Seaborn:

Στη seaborn έχουμε 3 κατηγορίες οικοπέδων

  • Κατηγορικά οικόπεδα.

  • Οικόπεδα διανομής.

  • Σχεσιακές πλοκές.


Κατηγορικά οικόπεδα

Χρησιμοποιούμε τις κατηγορικές συναρτήσεις σχεδίασης του seaborn για να οπτικοποιήσουμε τις τάσεις μιας κατηγορικής μεταβλητής ή για να οπτικοποιήσουμε τη σχέση μεταξύ δύο μεταβλητών με τουλάχιστον μία κατηγορική.

Μέτρηση πλοκής:

  • Εμφανίζει τα πλήθη των παρατηρήσεων κάθε κατηγορίας από την κατηγορική μεταβλητή. Απλώς μετράμε τον αριθμό των παρατηρήσεων κάθε κατηγορίας της μεταβλητής
seaborn.catplot(kind = 'count',
                data = dataset,
                x    = 'variable')

Count plot

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

  • Αντιπροσωπεύει μια εκτίμηση της τάσης μιας συνεχούς μεταβλητής με το ύψος του ορθογωνίου για κάθε κατηγορία μιας κατηγορικής μεταβλητής. Έτσι, η συνάρτηση γραφικής παράστασης παίρνει δύο μεταβλητές ως είσοδο, μία που είναι συνεχής και μία που είναι κατηγορική. Για κάθε κατηγορία από τη variable_1, υπολογίζουμε την τάση της variable_2.

  • Η τάση μπορεί να είναι ο μέσος όρος, η διακύμανση ή μπορείτε να περάσετε κάποια προσαρμοσμένη συνάρτηση…

seaborn.catplot(kind = 'bar',**data = dataset,**
                x    = 'variable_1',**y    = 'variable_2',**
                estimator = np.mean)**

Bar Plot

Οικόπεδο:

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

Strip Plot

seaborn.catplot(kind = 'strip',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                jitter = 0.15)

Οικόπεδο σμήνους:

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

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

Swarm Plot

seaborn.catplot(kind = 'swarm',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

Οικόπεδο κουτιού:

  • Το διάγραμμα πλαισίου χρησιμοποιείται για να αναπαραστήσει την κατανομή μιας συνεχούς μεταβλητής για κάθε κατηγορία μιας κατηγορικής μεταβλητής. Παρόλο που είναι αρκετά απλό, παρέχει πολλές πληροφορίες:

  • Οι τιμές των τεταρτημορίων:

Το κουτί έχει μια οριζόντια γραμμή μέσα, η οποία αντιπροσωπεύει τη διάμεσο. Η οριζόντια γραμμή πάνω είναι τα πάνω τεταρτημόρια, η κάτω από αυτήν είναι τα κάτω τεταρτημόρια.

  • Οι ακραίες τιμές:

Παρατηρήστε ότι υπάρχουν μερικά σημεία έξω από το πλαίσιο, αυτά τα σημεία αντιπροσωπεύουν τις ακραίες τιμές

Box Plot

seaborn.catplot(kind = 'box',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

Οικόπεδο βιολιού:

Αντί να σχεδιάσει το πλαίσιο διανομής, η γραφική παράσταση βιολιού θα σχεδιάσει την πραγματική κατανομή της συνεχούς μεταβλητής για κάθε κατηγορία της κατηγορικής μεταβλητής χρησιμοποιώντας το KDE (Εκτίμηση πυκνότητας πυρήνα)

Violin Plot

seaborn.catplot(kind = 'violin',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

Οικόπεδα διανομής:

Χρησιμοποιούμε τις συναρτήσεις σχεδίασης κατανομής του seaborn για να απεικονίσουμε την κατανομή συνεχών μεταβλητών.

Η πλοκή του:

Η γραφική παράσταση ιστορικού αντιπροσωπεύει την κατανομή συνεχών μεταβλητών χρησιμοποιώντας bins.

Hist Plot

seaborn.distplot(kind = 'hist',
                 data = dataset,
                 x    = 'variable',
                 bins = 20)

Σχήμα KDE:

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

KDE Plot

seaborn.distplot(kind = 'kde',
                 data = dataset,
                 x    = 'variable')

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

KDE Plot

seaborn.distplot(kind = 'kde',
                 data = dataset,
                 x    = 'variable_1',
                 y    = 'variable_2')

Οικόπεδο ECDF:

Η γραφική παράσταση ECDF αντιπροσωπεύει την εμπειρική αθροιστική κατανομή μιας συνεχούς μεταβλητής.

ECDF Plot

seaborn.distplot(kind = 'ecdf',
                 data = dataset,
                 x    = 'variable')

Σχετικές πλοκές:

Χρησιμοποιούμε τις σχεσιακές συναρτήσεις σχεδίασης του seaborn για να απεικονίσουμε τη σχέση μεταξύ συνεχών μεταβλητών.

Διάγραμμα διασποράς:

  • Δείχνει τη σχέση μεταξύ δύο συνεχών μεταβλητών, απλά σχεδιάζοντας όλα τα σημεία δεδομένων.

Scatter Plot

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

Οικόπεδο γραμμής:

  • Αντιπροσωπεύει τη σχέση μεταξύ μεταβλητών ως συνεχή συνάρτηση.

Line Plot

seaborn.relplot(kind = 'line',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

Περισσότερες λειτουργίες:

Ίσως έχετε παρατηρήσει ότι σε όλες τις συναρτήσεις σχεδίασης χρησιμοποιούσαμε έως δύο μεταβλητές ανά γραφική παράσταση, αλλά τι γίνεται αν θέλουμε να εισαγάγουμε περισσότερες μεταβλητές στην οπτικοποίηση μας; Ευτυχώς ο Seaborn φρόντισε για αυτό:

Απόχρωση:

  • Χρησιμοποιώντας το hue μπορούμε να εισαγάγουμε μια 3η μεταβλητή που είναι κατηγορηματική στην οπτικοποίηση μας χρησιμοποιώντας χρωματική κωδικοποίηση, σημαίνει ότι τα σημεία δεδομένων που ανήκουν στην ίδια κατηγορία αυτής της 3ης μεταβλητής θα έχουν το ίδιο χρώμα.

Hue

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                hue  = 'variable_3')

Μέγεθος:

  • Το μέγεθος είναι παρόμοιο με την απόχρωση, αλλά χρησιμοποιεί κωδικοποίηση μεγέθους αντί για έγχρωμη κωδικοποίηση. Σημαίνει ότι τα σημεία δεδομένων που ανήκουν στην ίδια κατηγορία της 3ης μεταβλητής θα έχουν το ίδιο μοναδικό μέγεθος. Διαφορετικά μεγέθη σημαίνει διαφορετικές κατηγορίες.

Size

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                size = 'variable_3',
                sizes = [50, 100])

Στυλ:

  • Σχεδόν το ίδιο πράγμα με το Hue και το Size, Σημαίνει ότι τα σημεία δεδομένων που ανήκουν στην ίδια κατηγορία της 3ης μεταβλητής θα έχουν το ίδιο μοναδικό στυλ. Ένα στυλ σημείου μπορεί να είναι μια τελεία, ένα αστέρι, ένας σταυρός, ένα τρίγωνο, ... τα ονομάζουμε δείκτες.

Style

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                style = 'variable_3',
                markers = ['X', '*'])

Μπορούμε επίσης να εισαγάγουμε μια νέα κατηγορική μεταβλητή χρησιμοποιώντας πολλαπλά διαγράμματα, κάθε διάγραμμα ανήκει σε μια κατηγορία από τη μεταβλητή κατηγορίας:

Διάσελο:

Θα δημιουργήσει πολλά σχήματα οριζόντια σε σχέση με τις κατηγορίες της 3ης μεταβλητής.

Col

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                col  = 'variable_3')

Σειρά:

Θα δημιουργήσει πολλά σχήματα κάθετα σε σχέση με τις κατηγορίες της 3ης μεταβλητής.

Row

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                row  = 'variable_3')

Μπορούμε επίσης να χρησιμοποιήσουμε Hue και Size στην ίδια γραφική παράσταση, για να αναπαραστήσουμε 4 μεταβλητές, ή ακόμα και Hue και Style και Col, για να χρησιμοποιήσουμε 5 μεταβλητές στην ίδια γραφική παράσταση! Μπορούμε να χρησιμοποιήσουμε έως και 7 μεταβλητές (μεταβλητή 1, μεταβλητή 2, Hue, Size, Style, Col, Row ) στην ίδια γραφική παράσταση, αλλά θα μας δώσει μια πολύ φορτισμένη γραφική παράσταση που είναι τόσο ακατάστατη και εξαιρετικά δύσκολη στην ερμηνεία, μερικές φορές όχι ενημερωτικό καθόλου.

Hue & Size

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                hue  = 'variable_3',
                size = 'variable_4')

Συμπέρασμα:

Σε αυτήν την ανάρτηση, μάθαμε για το seaborn, τις 3 κατηγορίες συναρτήσεων σχεδίασης: Κατηγορικές, Κατανομές και Σχεσιακές γραφικές παραστάσεις, και εξηγήσαμε κάθε συνάρτηση σχεδίασης για κάθε κατηγορία, μαζί με τον κώδικα python.

Ρίξτε μια ματιά στο Data Science Bootcamp για να μάθετε περισσότερα σχετικά με αυτό το θέμα!


Career Services background pattern

Υπηρεσίες καριέρας

Contact Section background image

Ας μείνουμε σε επαφή

Code Labs Academy © 2024 Όλα τα δικαιώματα διατηρούνται.