Σημειώσεις

Προηγούμενο

Γραφικές παραστάσεις

Η python μας δίνει τη δυνατότητα και τα εργαλεία για να σχεδιάσουμε γραφικές παραστάσεις. Αυτές μπορεί να είναι οι συνήθεις γραφική παράσταση μίας συνάρτησης f(x) αλλά μπορεί να είναι και διάσπαρτα σημεία στο επίπεδο (π.χ., αναπαράσταση πειραματικών δεδομένων μαζί με τα σφάλματά τους), ιστογράμματα, επιφάνειες στον χώρο, κλπ.

Η βιβλιοθήκη η οποία μας δίνει τα εργαλεία για γραφικές παραστάσεις είναι η matplotlib και η πρόσβαση σε αυτή γίνεται μέσω του πακέτου matplotlib.pyplot.

Γραφική παράσταση συνάρτησης

Θα δούμε τον απλούστερο τρόπο για να σχεδιάσουμε την γραφική παράσταση συνάρτησης f(x) = x2. Πρώτα δημιουργούμε μία σειρά σημείων xi στον άξονα των x και μετά την αντίστοιχη σειρά σημείων yi στον άξονα των y. Αυτό που τυπώνει ο υπολογιστής είναι τα σημεία (xi, yi).


xp = []
yp = []
dx = 0.1                # οι θέσεις στον άξονα x θα απέχουν μεταξύ τους dx
for i in range(-5,6):
    xpoint =  i*dx
    xp.append(xpoint)
    yp.append(xpoint**2)

Παρατηρήστε ότι θα μπορούσαμε να δημιουργήσουμε τις παραπάνω δύο λίστες με απλούστερο τρόπο.


dx = 0.1
xp = [i*dx for i in range(-5,6)]
yp = [xpoint**2 for xpoint in xp]

Θα τυπώσουμε τα σημεία (xi, yi).


import matplotlib.pyplot as plt

plt.plot(xp,yp,'o')     # τυπώνονται τα σημεία (xp[i],yp[i]) με κυκλάκια ('ο')
plt.show()              # εντολή να εμφανιστεί το γράφημα στην οθόνη

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


import matplotlib.pyplot as plt

plt.plot(xp,yp,'b-')  # Επιλέγουμε συνεχή (-) μπλέ (b) γραμμή
plt.show()

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


import matplotlib.pyplot as plt

dx = 0.01
xp = [i*dx for i in range(-50,51)]
yp = [xpoint**2 for xpoint in xp]

plt.plot(xp,yp,'-k')
plt.xlabel('$x$')
plt.ylabel('$f(x)$')
plt.title("Plot of $f(x)=x^2$")

plt.show()

Σχεδίαση δύο καμπυλών

Η συνάρτηση ex προσεγγίζεται από το πολυώνυμο 1 + x + x2/2 κοντά στο σημείο x=1. Θα σχεδιάσουμε τις γραφικές παραστάσεις και των δύο συναρτήσεων.


import matplotlib.pyplot as plt
import math

dx = 0.01
xp = [i*dx for i in range(-200,201)]
yp = [math.exp(x) for x in xp]
ya = [1.0+x+x**2/2.0 for x in xp]

plt.plot(xp,yp,'-k',xp,ya,'b--')

plt.xlabel('$x$')
plt.ylabel('$f(x)$')
plt.text(1.55,6.0,'$e^x$',fontsize=14)      # γράφει κείμενο στο γράφημα
plt.text(1.4,3.0,'$1+x+x^2/2$',fontsize=14)

plt.show()

Μελέτη

Βιβλιογραφία

  1. Σημειώσεις Μ. Κολουντζάκη.
  2. Σημειώσεις Μ. Πλεξουσάκη.
  3. Tutorial on pyplot() - newer.
  4. Pyplot tutorial.
  5. Tutorial on show().
  6. Δημήτριος Καρολίδης, Μαθαίνετε εύκολα python (Εκδόσεις Καρολίδη, 2016).