Anzahl der Plot-Ticks in Matplotlib festlegen
-
Anzahl der Ticks mit der Klasse
Matplotlib.ticker.MaxNLocator
festlegen -
Setzen von Zahlen-Ticks mit der Methode
Matplotlib.axis.Axis.set_ticks()
Dieses Tutorial erklärt, wie man die Anzahl der Ticks in einer Matplotlib-Figur mit Hilfe der Klasse Matplotlib.ticker.MaxNLocator
und der Methode set_ticks()
setzen kann.
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()
Ausgabe:
Es wird eine Matplotlib-Figur mit der Standardanzahl von Ticks angezeigt. Wir werden die Anzahl der Ticks in der Abbildung mit verschiedenen Methoden ändern.
Anzahl der Ticks mit der Klasse Matplotlib.ticker.MaxNLocator
festlegen
Die Klasse Matplotlib.ticker.MaxNLocator
definiert einen Parameter namens nbins
, der die maximale Anzahl der Bins darstellt. Die Anzahl der Ticks wird um eins größer sein als die Anzahl der Bins. Der Parameter nbins
in der Klasse Matplotlib.ticker.MaxNLocator
impliziert also, dass die Anzahl der Ticks nicht größer als nbins+1
sein kann.
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()
Ausgabe:
Sie setzt die maximale Anzahl der Bins für die Y-Achse in der Abbildung auf 5, was bedeutet, dass die maximale Anzahl der Ticks 6 beträgt. Auf ähnliche Weise können wir auch Ticks für die X-Achse setzen.
Alternativ können wir auch bestimmte Bedingungen mit der if
-Anweisung verwenden, um nur die bestimmten Ticks auszuwählen, die die Bedingung erfüllen.
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()
Ausgabe:
Es werden nur Tick-Beschriftungen für Ticks an geraden Positionen sowohl in der X- als auch in der Y-Achse gesetzt. Es entfernt die Tick-Labels, aber die Ticks sind immer noch da. Wir können die Bedingung ändern, um die Tick-Labels anzupassen.
Setzen von Zahlen-Ticks mit der Methode Matplotlib.axis.Axis.set_ticks()
Wir können die Achsen auch mit der Methode Matplotlib.axis.Axis.set_ticks()
in Python setzen.
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()
Ausgabe:
Sie setzt die Anzahl der Ticks und Tickwerte, die in der Methode set_ticks()
angegeben wurden. Wir übergeben ein NumPy-Array oder eine Liste an set_ticks()
, je nachdem, welche Tickwerte gesetzt werden sollen.