Iniziare con matplotlib

Osservazioni

Panoramica

matplotlib è una libreria di plottaggio per Python. Fornisce API orientate agli oggetti per incorporare grafici in applicazioni. È simile a MATLAB in termini di capacità e sintassi.

È stato originariamente scritto da JDHunter ed è in fase di sviluppo. È distribuito sotto una licenza BSD-Style.

Versioni

Versione Versioni di Python supportate Osservazioni Data di rilascio
1.3.1 2.6, 2.7, 3.x Versione stabile precedente 2013/10/10
1.4.3 2.6, 2.7, 3.x Versione stabile precedente 2015/07/14
1.5.3 2.7, 3.x Versione stabile attuale 2016/01/11
2.x 2.7, 3.x Ultima versione di sviluppo 2016/07/25

Personalizzazione di un grafico matplotlib

import pylab as plt
import numpy as np

plt.style.use('ggplot')

fig = plt.figure(1)
ax = plt.gca()

# make some testing data
x = np.linspace( 0, np.pi, 1000 )
test_f = lambda x: np.sin(x)*3 + np.cos(2*x)

# plot the test data
ax.plot( x, test_f(x) , lw = 2)

# set the axis labels
ax.set_xlabel(r'$x$', fontsize=14, labelpad=10)
ax.set_ylabel(r'$f(x)$', fontsize=14, labelpad=25, rotation=0)

# set axis limits
ax.set_xlim(0,np.pi)

plt.draw()

inserisci la descrizione dell'immagine qui

# Customize the plot
ax.grid(1, ls='--', color='#777777', alpha=0.5, lw=1)
ax.tick_params(labelsize=12, length=0)
ax.set_axis_bgcolor('w')
# add a legend
leg = plt.legend( ['text'], loc=1 )
fr = leg.get_frame()
fr.set_facecolor('w')
fr.set_alpha(.7)
plt.draw()

inserisci la descrizione dell'immagine qui

Sintassi imperativa e orientata agli oggetti

Matplotlib supporta la sintassi sia orientata agli oggetti che imperativa per la stampa. La sintassi imperativa è intenzionalmente progettata per essere molto vicina alla sintassi di Matlab.

La sintassi imperativa (talvolta chiamata sintassi 'state-machine') emette una stringa di comandi che agiscono tutti sulla figura o sull'asse più recenti (come Matlab). La sintassi orientata agli oggetti, d'altra parte, agisce esplicitamente sugli oggetti (figura, asse, ecc.) Di interesse. Un punto chiave nello zen di Python afferma che l'esplicito è meglio di quello implicito, quindi la sintassi orientata agli oggetti è più pitonica. Tuttavia, la sintassi imperativa è conveniente per i nuovi convertiti da Matlab e per la scrittura di piccoli script di trama "usa e getta". Di seguito è riportato un esempio dei due diversi stili.

import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0, 2, 0.01)
y = np.sin(4 * np.pi * t)

# Imperative syntax
plt.figure(1)
plt.clf()
plt.plot(t, y)
plt.xlabel('Time (s)')
plt.ylabel('Amplitude (V)')
plt.title('Sine Wave')
plt.grid(True)

# Object oriented syntax
fig = plt.figure(2)
fig.clf()
ax = fig.add_subplot(1,1,1)
ax.plot(t, y)
ax.set_xlabel('Time (s)')
ax.set_ylabel('Amplitude (V)')
ax.set_title('Sine Wave')
ax.grid(True)

Entrambi gli esempi producono lo stesso grafico che viene mostrato di seguito.

inserisci la descrizione dell'immagine qui

Installazione e configurazione

Esistono diversi modi per installare matplotlib, alcuni dei quali dipenderanno dal sistema che si sta utilizzando. Se sei fortunato, sarai in grado di utilizzare un gestore di pacchetti per installare facilmente il modulo matplotlib e le sue dipendenze.

finestre

Su macchine Windows puoi provare a utilizzare il gestore di pacchetti pip per installare matplotlib. Vedi qui per informazioni sulla configurazione di pip in un ambiente Windows.

OS X

Si consiglia di utilizzare il gestore di pacchetti pip per installare matplotlib. Se hai bisogno di installare alcune delle librerie non Python sul tuo sistema (es. libfreetype ) allora considera di usare homebrew .

Se non è possibile utilizzare pip per qualsiasi motivo, provare a installare dal sorgente .

Linux

Idealmente, il gestore di pacchetti di sistema o pip dovrebbe essere usato per installare matplotlib, sia installando il pacchetto python-matplotlib sia eseguendo il programma di pip install matplotlib .

Se ciò non è possibile (ad esempio non si dispone dei privilegi sudo sulla macchina che si sta utilizzando), è possibile eseguire l'installazione dal sorgente utilizzando l'opzione --user : python setup.py install --user . Tipicamente, questo installerà matplotlib in ~/.local .

Debian / Ubuntu

sudo apt-get install python-matplotlib

Fedora / Red Hat

sudo yum install python-matplotlib

Risoluzione dei problemi

Vedere il sito web matplotlib per consigli su come riparare un matplotlib rotto.

Array bidimensionali (2D)

Mostra una matrice bidimensionale (2D) sugli assi.

import numpy as np
from matplotlib.pyplot import imshow, show, colorbar

image = np.random.rand(4,4)
imshow(image)
colorbar()
show()

Visualizza array bidimensionale (2D) con matplotlib