Imposta il numero di tick in Matplotlib
-
Impostare il numero di tick utilizzando la classe
Matplotlib.ticker.MaxNLocator
-
Impostare i tick dei numeri utilizzando il metodo
Matplotlib.axis.Axis.set_ticks()
Questo tutorial spiega come possiamo impostare il numero di tick in una figura Matplotlib usando la classe Matplotlib.ticker.MaxNLocator
e il metodo set_ticks()
.
import math
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * math.pi, 100)
y = np.sin(x)
fig, axes = plt.subplots(1, 1)
axes.plot(x, y)
axes.set_title("Sinx Function")
axes.set_xlabel("X")
axes.set_ylabel("sinX")
plt.show()
Produzione:
Mostra una figura Matplotlib con il numero predefinito di tick. Modificheremo il numero di zecche nella figura utilizzando metodi diversi.
Impostare il numero di tick utilizzando la classe Matplotlib.ticker.MaxNLocator
La classe Matplotlib.ticker.MaxNLocator
definisce un parametro chiamato nbins
che rappresenta il numero massimo di bin. Il numero di tick sarà uno in più rispetto al numero di bin. Quindi il parametro nbins
nella classe Matplotlib.ticker.MaxNLocator
implica che il numero di tick non può essere maggiore di nbins+1
.
import math
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator
x = np.linspace(0, 2 * math.pi, 100)
y = np.sin(x)
fig, axes = plt.subplots(1, 1)
axes.plot(x, y)
axes.yaxis.set_major_locator(MaxNLocator(5))
axes.set_title("Sinx Function")
axes.set_xlabel("X")
axes.set_ylabel("sinX")
plt.show()
Produzione:
Imposta il numero massimo di bin per l’asse Y nella figura a 5, il che implica che il numero massimo di tick è 6. Allo stesso modo, possiamo impostare tick anche per l’asse X.
In alternativa, possiamo anche utilizzare determinate condizioni con l’istruzione if
per selezionare solo i tick particolari che soddisfano la condizione.
import math
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * math.pi, 100)
y = np.sin(x)
fig, axes = plt.subplots(1, 1)
axes.plot(x, y)
for i, tick in enumerate(axes.xaxis.get_ticklabels()):
if i % 2 != 0:
tick.set_visible(False)
for i, tick in enumerate(axes.yaxis.get_ticklabels()):
if i % 2 != 0:
tick.set_visible(False)
axes.set_title("Sinx Function")
axes.set_xlabel("X")
axes.set_ylabel("sinX")
plt.show()
Produzione:
Imposta le etichette delle tacche solo per le tacche in posizione pari sia sull’asse X che sull’asse Y. Sebbene rimuova le etichette di spunta, le zecche sono ancora lì. Possiamo cambiare la condizione per personalizzare le etichette delle tacche.
Impostare i tick dei numeri utilizzando il metodo Matplotlib.axis.Axis.set_ticks()
Possiamo anche impostare gli assi usando Matplotlib.axis.Axis.set_ticks()
in Python.
import math
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * math.pi, 100)
y = np.sin(x)
fig, axes = plt.subplots(1, 1)
axes.plot(x, y)
axes.xaxis.set_ticks([0, 1, 3, 4, 5, 6])
axes.yaxis.set_ticks(np.linspace(-1, 1, 5))
axes.set_title("Sinx Function")
axes.set_xlabel("X")
axes.set_ylabel("sinX")
plt.show()
Produzione:
Imposta il numero di tick e i valori di tick specificati nel metodo set_ticks()
. Passiamo un array NumPy o una lista a set_ticks()
in base al quale verranno impostati i valori di tick.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn