Σημειωματάριο Τρίτης 31 Μαρτίου 2015

Σχεδιασμός γραφικών παραστάσεων και σχημάτων με τη βιβλιοθήκη pyplot

Σήμερα κάναμε μια μικρή εισαγωγή στη βιβλιοθήκη pyplot, τμήμα της βιβλιοθήκης matplotlib, την οποία χρησιμοποιούμε για να σχεδιάζουμε διάφορα σχήματα (από γραφικές παραστάσεις συναρτήσεων μιας ή δύο μεταβλητών έως και πολύ γενικότερα σχήματα).

Το σημερινό σημειωματάριο σας δίνεται χωρίς σχόλια. Αντί σχολίων σας παραπέμπω στην αντίστοιχη διάλεξη του κ. Πλεξουσάκη την οποία και ακολούθησα.

In [5]:
import matplotlib.pyplot as plt

plt.plot([1,2,3,4], [1,4,9,16])
plt.axis([0, 6, 0, 20])
plt.show()
Out[5]:
[0, 6, 0, 20]
In [14]:
import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0., 5., 0.2)

# red dashes, blue squares and green triangles
plt.plot(t, t, 'r--')
plt.plot(t, t**2, 'bp')
plt.plot(t, t**3, 'g^')

plt.show()
In [18]:
import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0., 5., 0.2)

# red dashes, blue squares and green triangles
plt.plot(t, t, 'r--')
plt.plot(t, t**2, 'bp')
plt.plot(t, t**3, 'g^-')

plt.axis([1.9, 3.1, 0, 28])

plt.show()
In [37]:
import numpy as np
import matplotlib.pyplot as plt

def f(t):
    return np.exp(-t) * np.cos(2*np.pi*t)

t1 = np.arange(0.0, 5.0, 0.1)
t2 = np.arange(0.0, 5.0, 0.02)

plt.figure(1)

plt.subplot(221)
plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k')

plt.subplot(224)
plt.plot(t2, np.cos(2*np.pi*t2), 'r--')

plt.subplot(222)
plt.plot(t2, np.abs(np.cos(2*np.pi*t2)), 'g-')

plt.subplot(223)
plt.plot(t1, np.random.random(len(t1)), 'c-')

plt.show()
In [49]:
import numpy as np
import matplotlib.pyplot as plt

def f(t):
    return t**2*np.sin(1/t)

epsilon = 0.01
step = 0.0001

x = np.arange(epsilon, 0.1, step)

plt.plot(x, f(x), 'g-', x, x**2, 'r--', x, -x**2, 'c--')
#plt.axis([epsilon, 0.05, -1, 1])
plt.show
Out[49]:
<function matplotlib.pyplot.show>
In [52]:
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

def randrange(n, vmin, vmax):
    return (vmax-vmin)*np.random.rand(n) + vmin

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

n = 100

xs = randrange(n, 23, 32)
ys = randrange(n, 0, 100)
zs = randrange(n, -25, 25)

ax.scatter(xs, ys, zs, c='b', marker=',')

ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')

plt.show()
In [54]:
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

x = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, x)
Z = np.cos(np.sqrt(X**2 + Y**2))

ax.plot_wireframe(X, Y, Z)

plt.show()