2014-02-25 8 views
10

Wenn ich eine Matrix mit einer Farbleiste plotte, hat die Farbleiste 10 Ticks. Da der Farbbalken ziemlich klein sein muss, überschneiden sich die Tick-Labels. Deshalb möchte ich die Anzahl der Ticks von 10 auf 5 reduzieren. Ich möchte die Schriftgröße nicht reduzieren!Wie setze ich die Anzahl der Ticks in plt.colorbar?

Gibt es eine einfache Möglichkeit, dies zu tun? Ich möchte die Ticks nicht manuell einstellen ...

Antwort

27

Der MaxNLocator Ticker könnte für Ihre Zwecke passen?

class matplotlib.ticker.MaxNLocator

Select no more than N intervals at nice locations

Zum Beispiel:

from matplotlib import ticker 

# (generate plot here) 
cb = plt.colorbar() 
tick_locator = ticker.MaxNLocator(nbins=5) 
cb.locator = tick_locator 
cb.update_ticks() 
plt.show() 
+0

Vielen Dank! Das war die richtige (und sehr einfache) Lösung! – FrankTheTank

+2

Momentan gibt es kein Häkchen am oberen Ende der Farbleiste, sondern am unteren Ende. Das sieht sehr asymmetrisch und hässlich für mich aus. Gibt es dafür eine Lösung? – FrankTheTank

+2

Ok .... setzen Sie einfach cb.ax.yaxis.set_major_locator (matplotlib.ticker.AutoLocator()) vor c.b.update_icks() – FrankTheTank

Verwandte Themen