Matplotlib, η πιο ολοκληρωμένη βιβλιοθήκη οπτικοποίησης στην Python για τη δημιουργία όλων των ειδών γραφικών απεικόνισης δεδομένων. Ωστόσο, μπορεί επίσης να είναι λίγο απογοητευτικό και τρομακτικό, δεδομένου ότι τόσα πολλά μπορείτε να κάνετε με το Matplotlib.
Σε αυτήν την ανάρτηση, θα μάθουμε πώς να χρησιμοποιούμε 8 τύπους διαγράμματος που χρησιμοποιούνται συνήθως, όπως scatter plot, ιστόγραμμα, με πραγματικά απλά παραδείγματα. Ο στόχος μας εδώ δεν είναι να δημιουργήσουμε πλοκή ποιότητας έκδοσης, αλλά πρώτα να κάνουμε βασικές πλοκές.
Για να ξεκινήσετε, ας φορτώσουμε το Numpy και το Matplotlib. Χρησιμοποιούμε την Matplotlib έκδοση 3.6.3
import numpy as np import matplotlib matplotlib.__version__ 3.6.3 import matplotlib.pyplot as plt
1. Σχεδίαση με τη συνάρτηση plot() του Matplotlib
Η συνάρτηση plot() του Matplotlib.pyplot είναι χρήσιμη για τη δημιουργία γραμμών μεταξύ δύο μεταβλητών. Οι γραμμικές γραφές είναι ιδανικές για χρονοσειρές όπως οι γραφές όπου έχουμε χρόνο στον άξονα x. Εδώ δημιουργούμε δεδομένα χρησιμοποιώντας τυχαίους αριθμούς για να κάνουμε γραμμική γραφική παράσταση χρησιμοποιώντας τη συνάρτηση plot().
Και σε αυτήν την ανάρτηση χρησιμοποιούμε την κλάση Random Generator για τη δημιουργία τυχαίων αριθμών.
rng = np.random.default_rng(42)
Για τον άξονα x δημιουργούμε εύρος ακεραίων χρησιμοποιώντας τη συνάρτηση arange() του Numpy. Και για τον άξονα y δημιουργούμε τυχαίους αριθμούς από ομοιόμορφη κατανομή. Και τώρα έχουμε έτοιμα τα δεδομένα για να φτιάξουμε μια γραφική παράσταση γραμμής χρησιμοποιώντας το Matplotlib.
X = np.arange(11) Y = X + rng.uniform(0,5,11) print(X) print(Y) [ 0 1 2 3 4 5 6 7 8 9 10] [ 3.86978024 3.1943922 6.2929896 6.48684015 4.47088674 9.87811176 9.80569851 10.93032153 8.64056816 11.25192969 11.85399012]
Η συνάρτηση γραφικής παράστασης του Matplotlib παίρνει τις τιμές που απαιτούνται για τους άξονες x και y στο διάγραμμα ως ορίσματα.
# lineplot with Matplotlib's plot() function plt.plot(X,Y) # Add x and y axis labels plt.xlabel("X", size=16) plt.ylabel("Y", size=16) # add title plt.title("Matplotlib plot() example", size=20) plt.savefig("lineplot_with_Matplotlib_plot.png", format="png",dpi=150)
Και κάπως έτσι φαίνεται η γραφική παράσταση της απλής γραμμής.

2. Ιστόγραμμα με τη συνάρτηση hist() του Matplotlib
Ο δεύτερος τύπος πλοκής που θα φτιάξουμε χρησιμοποιώντας. Το Matplotlib είναι. ιστόγραμμα με τη συνάρτηση hist() του Matplotlib. Α. απλό ιστόγραμμα είναι χρήσιμο για την οπτικοποίηση της κατανομής μιας μεμονωμένης μεταβλητής.
Δημιουργούμε τυχαία. αριθμοί από την κανονική κατανομή χρησιμοποιώντας την κλάση γεννήτριας τυχαίων αριθμών του Numpy.
rng = np.random.default_rng(42) X = rng.normal(0, 1,100)
Τώρα μπορούμε να φτιάξουμε ένα ιστόγραμμα. χρησιμοποιώντας τα δεδομένα ως όρισμα στη συνάρτηση hist() στο Matplotlib.
# make a histogram. with matplotlib plt.hist(X) # set x and y axis labels plt.xlabel("X", size=16) plt.ylabel("Count", size=16) plt.title("Matplotlib hist() example", size=20) plt.savefig("histogram_with_Matplotlib_hist.png", format="png",dpi=150)
Και κάπως έτσι φαίνεται το ιστόγραμμα των δεδομένων μας.

3. Γράφημα διασποράς με τη συνάρτηση scatter() του Matplotlib
Μπορούμε να κάνουμε διάγραμμα scatter μεταξύ δύο αριθμητικών μεταβλητών χρησιμοποιώντας scatter(). λειτουργία στο Matplotlib. Στο παρακάτω παράδειγμα, δημιουργούμε τυχαίους αριθμούς από ομοιόμορφη κατανομή και δημιουργούμε μεταβλητές X και Y για τη δημιουργία γραφήματος διασποράς.
rng = np.random.default_rng() X = rng.uniform(0,1,100) Y = rng.uniform(0,1,100)
Η συνάρτηση scatter() του Matplotlib παίρνει τις δύο μεταβλητές ως ορίσματα και κάνει μια γραφική παράσταση scatter.
plt.scatter(X,Y) plt.xlabel("X", size=16) plt.ylabel("Y", size=16) plt.title("Matplotlib scatter()", size=20) plt.savefig("scatterplot_with_Matplotlib_scatter.png", format="png",dpi=150)
Από προεπιλογή, το Matplotlib δημιουργεί διάγραμμα διασποράς με μπλε κουκκίδες όπως φαίνεται παρακάτω.

4. Οικόπεδο ράβδων με τη συνάρτηση bar() του Matplotlib
Μπορούμε να φτιάξουμε ένα barplot χρησιμοποιώντας τη συνάρτηση bar() του Matplotlib. Για να φτιάξουμε ένα barplot, δημιουργούμε ακολουθία αριθμών για τον άξονα x και τυχαίο αριθμό από ομοιόμορφη κατανομή για τον άξονα y.
rng = np.random.default_rng(42) X = np.arange(1,11) Y = rng.uniform(1,10,10)
Η συνάρτηση bar() του Matplotlib παίρνει τις μεταβλητές X και Y που δημιουργήσαμε ως ορίσματα για να δημιουργήσει ένα barplot.
plt.bar(X,Y) plt.xlabel("X", size=16) plt.ylabel("Count", size=16) plt.title("Matplotlib bar()", size=20) plt.savefig("barplot_with_Matplotlib_bar.png", format="png",dpi=150)

5. Boxplot με τη συνάρτηση boxplot() του Matplotlib
Το boxplot() του Matplotlib είναι χρήσιμο για τη γρήγορη δημιουργία στοιχειωδών τετραγωνιδίων. Η boxplot() του Matplotlib λαμβάνει τον πίνακα Numpy ή μια ακολουθία διανυσμάτων ως είσοδο για να δημιουργήσει τετράγωνα.
Στο παρακάτω παράδειγμα, δημιουργούμε έναν πίνακα numpy με 3 μεταβλητές ή στήλες χρησιμοποιώντας την κλάση γεννήτριας τυχαίων αριθμών του Numpy.
rng = np.random.default_rng(42) fig,ax=plt.subplots() X = rng.normal((3,10,5),(1,2,3),(100,3))
Χρησιμοποιώντας τον πίνακα Numpy 2-d ως είσοδο στη συνάρτηση boxplot() φτιάχνουμε το boxplot.
plt.boxplot(X) plt.xlabel("Group", size=16) plt.title("Matplotlib boxplot()", size=20) plt.savefig("boxplot_with_Matplotlib_boxplot.png", format="png",dpi=150)<ins datetime="2023-01-14T08:40:23+00:00">

6. Violinplot με τη συνάρτηση violinplot() του Matplotlib
Violinplot μια παραλλαγή του boxplot είναι συχνά πιο κατάλληλη από ένα boxplot. Με τη συνάρτηση violinplot() στο Matplotlib, μπορούμε να φτιάξουμε πλοκή βιολιού.
rng = np.random.default_rng(42) X = rng.normal((3,10,6),(1,2,3),(100,3)) X[0:5,]
Χρησιμοποιούμε 2d numpy array με 3 ομάδες ή στήλες για να φτιάξουμε την πλοκή του βιολιού.
array([[ 3.30471708, 7.92003179, 8.25135359], [ 3.94056472, 6.09792962, 2.09346148], [ 3.1278404 , 9.36751482, 5.94959653], [ 2.14695607, 11.75879595, 8.33337581], [ 3.0660307 , 12.25448241, 7.40252803]])
Στο παρακάτω παράδειγμα, κάνουμε μια γραφική παράσταση βιολιού που δείχνει τη διάμεση τιμή για κάθε ομάδα.
plt.violinplot(X, showmedians=True) plt.xlabel("Group", size=16) plt.title("Matplotlib Violinplot()", size=20) plt.savefig("violinplot_with_Matplotlib_violinplot.png", format="png",dpi=150)

7. Heatmap με τη συνάρτηση imshow() του Matplotlib
Μπορούμε να φτιάξουμε έναν απλό χάρτη θερμότητας που δείχνει τις τιμές ενός πίνακα 2d ως χρώματα χρησιμοποιώντας τη συνάρτηση imshow() του Matplotlib.
Πρώτα δημιουργούμε έναν πίνακα 2d Numpy χρησιμοποιώντας τυχαίους αριθμούς από ομοιόμορφη κατανομή. Και στη συνέχεια παρέχετε τον πίνακα 2d ως όρισμα στη συνάρτηση imshow() για να δημιουργήσετε ένα heatmap.
rng = np.random.default_rng(42) X = rng.uniform(0,1,(6,6)) plt.imshow(X) # set x and y axis labels plt.xlabel("X", size=16) plt.ylabel("Y", size=16) plt.title("Matplotlib imshow() Example", size=20) plt.savefig("Heatmap_with_Matplotlib_imshow.png", format="png",dpi=150)

8. Δισδιάστατο ιστόγραμμα με τη συνάρτηση hist2d() του Matplotlib
Τα δισδιάστατα ιστογράμματα μπορούν να είναι χρήσιμα όταν θέλετε να κατανοήσετε τη σχέση μεταξύ δύο ποσοτικών μεταβλητών σε μεγάλους αριθμούς.
Με τη συνάρτηση hist2d() του Matplotlib μπορούμε να φτιάξουμε 2d ιστογράμματα, όπου κάθε pixel χρωματίζεται με βάση τις μετρήσεις των δύο μεταβλητών
plt.style.use('fivethirtyeight') # make data: correlated + noise rng=np.random.default_rng() X = rng.normal(0, 1, 10000) Y = 1.1 * X + rng.normal(0,1,10000)/2 plt.hist2d(X, Y, bins=100, cmap='Reds') plt.xlabel("X", size=14) plt.ylabel("Y", size=14) plt.title("Matplotlib hist2d()", size=18) plt.tight_layout() plt.savefig("twoD_histogram_with_Matplotlib_hist2d.png", format="png",dpi=150)
