8 τύποι γραφικών με το Matplotlib στην Python

2
8 τύποι γραφικών με το Matplotlib στην Python

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)

Και κάπως έτσι φαίνεται η γραφική παράσταση της απλής γραμμής.

Γράφημα γραμμής με συνάρτηση Matplotlib plot().
Γράφημα γραμμής με συνάρτηση Matplotlib plot().

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)

Και κάπως έτσι φαίνεται το ιστόγραμμα των δεδομένων μας.

Ιστόγραμμα με τη συνάρτηση hist() του Matplotlib
Ιστόγραμμα με τη συνάρτηση hist() του Matplotlib



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 δημιουργεί διάγραμμα διασποράς με μπλε κουκκίδες όπως φαίνεται παρακάτω.

Γράφημα διασποράς με συνάρτηση Matplotlib scatter().
Γράφημα διασποράς με συνάρτηση Matplotlib scatter().



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)
Barplot με συνάρτηση plot() του Matplotlib
Barplot με συνάρτηση plot() του Matplotlib

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">
Boxplot με συνάρτηση Matplotlib boxplot().
Boxplot με συνάρτηση Matplotlib boxplot().

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)
Violinplot() με Matplotlib violinplot()
Violinplot() με Matplotlib violinplot()

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)
Heatmap με συνάρτηση Matplotlib imshow().
Heatmap με συνάρτηση Matplotlib imshow().

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)
Ιστόγραμμα 2D με τη συνάρτηση hist2d() του Matplotlib
Ιστόγραμμα 2D με τη συνάρτηση hist2d() του Matplotlib

Schreibe einen Kommentar