Anzahl der Plot-Ticks in Matplotlib festlegen

  1. Anzahl der Ticks mit der Klasse Matplotlib.ticker.MaxNLocator festlegen
  2. 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:

Standard-Ticks in Matplotlib

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:

Anzahl der Plot-Ticks mit der Klasse Matplotlib.ticker.MaxNLocator setzen

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:

Anzahl der Plot-Ticks mit der if-Bedingung setzen

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:

Anzahl der Plot-Ticks mit der Methode `set_ticks` setzen

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.