English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

接口面向对象Matplotlib

Nonostante sia facile generare grafici rapidamente utilizzando il modulo matplotlib.pyplot, si consiglia di utilizzare il metodo orientato agli oggetti perché può offrire una migliore gestione e personalizzazione dei grafici. La classe matplotlib.axes.Axes fornisce anche la maggior parte delle funzioni.

Il principale pensiero dietro l'uso di un metodo orientato agli oggetti più formale è creare un'istanza di oggetto grafico e quindi chiamare solo i metodi o le proprietà di quell'oggetto. Questo metodo aiuta a gestire meglio i tavoli di disegno con più disegni.

Nel'interfaccia orientata agli oggetti, Pyplot viene utilizzato solo per alcune funzioni, come la creazione di grafici, la creazione esplicita e il tracciamento degli oggetti grafici e assi. A questo livello, l'utente crea grafici utilizzando Pyplot, attraverso i quali può creare un o più oggetti assi. Questi oggetti assi vengono quindi utilizzati per la maggior parte delle operazioni di disegno.

Prima di tutto, crea un'istanza di grafica che fornisce un tela vuota.

# Nome del file: example.py
# Copyright: 2020 By w3codebox
# Autore: it.oldtoolbag.com
# Data: 2020-08-08
fig = plt.figure()

Aggiungi l'asse alla grafica. Il metodo add_axes() richiede un oggetto lista di 4 elementi, che corrisponde ai lati sinistro, inferiore, larghezza e altezza della grafica. Ogni numero deve essere compreso tra 0 e 1 -

# Nome del file: example.py
# Copyright: 2020 By w3codebox
# Autore: it.oldtoolbag.com
# Data: 2020-08-08
ax = fig.add_axes([0,0,1,1])

Imposta i tag dell'asse x e y e il titolo -

# Nome del file: example.py
# Copyright: 2020 By w3codebox
# Autore: it.oldtoolbag.com
# Data: 2020-08-08
ax.set_title("sine wave")
 ax.set_xlabel('angle')
 ax.set_ylabel('sine')

chiama il metodo plot() dell'oggetto axes.

# Nome del file: example.py
# Copyright: 2020 By w3codebox
# Autore: it.oldtoolbag.com
# Data: 2020-08-08
ax.plot(x,y)

Se si utilizza Jupyter notebookSe necessario, aggiungi l'istruzione %matplotlib inline; la funzione show() del modulo pyplot mostra le immagini.

Leggi ed esegui il seguente codice -

# Nome del file: example.py
# Copyright: 2020 By w3codebox
# Autore: it.oldtoolbag.com
# Data: 2020-08-08
#! /usr/bin/env python
 #coding=utf-8
 from matplotlib import pyplot as plt
 import numpy as np
 import math
 # Visualizza le impostazioni cinesi...
 plt.rcParams['font.sans-serif'] = ['SimHei'] # Passaggio 1 (sostituisci il font sans-serif)
 plt.rcParams['axes.unicode_minus'] = False # Passo due (risoluzione del problema di visualizzazione del segno meno sui assi delle coordinate)
 %matplotlib inline
 x = np.arange(0, math.pi*2, 0.05)
 y = np.sin(x)
 fig = plt.figure()
 ax = fig.add_axes([0,0,1,1])
 ax.plot(x,y)
 ax.set_title("Onda Seno")
 ax.set_xlabel('Angolo')
 ax.set_ylabel('Seno')
 plt.show()

Il codice di sopra genera l'output seguente -

sotto Jupyter notebookEsegui il codice identico al

# Nome del file: example.py
# Copyright: 2020 By w3codebox
# Autore: it.oldtoolbag.com
# Data: 2020-08-08
#! /usr/bin/env python
 #coding=utf-8
 from matplotlib import pyplot as plt
 import numpy as np
 import math
 # Visualizza le impostazioni cinesi...
 plt.rcParams['font.sans-serif'] = ['SimHei'] # Passaggio 1 (sostituisci il font sans-serif)
 plt.rcParams['axes.unicode_minus'] = False # Passo due (risoluzione del problema di visualizzazione del segno meno sui assi delle coordinate)
 %matplotlib inline
 x = np.arange(0, math.pi*2, 0.05)
 y = np.sin(x)
 fig = plt.figure()
 ax = fig.add_axes([0,0,1,1])
 ax.plot(x,y)
 ax.set_title("Onda Seno")
 ax.set_xlabel('Angolo')
 ax.set_ylabel('Seno')
 plt.show()

Visualizzazione dell'output come segue -