Matplotlib: Zeigt auch Labels für kleinere Ticks an

8

In matplotlib , wenn ich eine log -Skala auf einer Achse verwende, kann es vorkommen, dass diese Achse keine großen Ticks hat, nur kleinere . Das bedeutet, dass keine Labels für die gesamte Achse angezeigt werden.

Wie kann ich angeben, dass ich Etiketten auch für kleinere Ticks brauche?

Ich habe es versucht:

%Vor%

... aber es hat den Trick nicht gemacht.

    
Ricky Robinson 18.06.2013, 09:37
quelle

2 Antworten

5

Ich habe viele Möglichkeiten ausprobiert, um kleinere Ticks in Log-Plots richtig zu arbeiten. Wenn es Ihnen gelingt, das Protokoll des Werts des Häkchens anzuzeigen, können Sie matplotlib.ticker.LogFormatterExponent verwenden . Ich erinnere mich, matplotlib.ticker.LogFormatter versucht zu haben, aber ich mochte es nicht sehr: wenn ich mich gut daran erinnere legt alles in base^exp (auch 0,1, 0, 1). In beiden Fällen (sowie in allen anderen matplotlib.ticker.LogFormatter* ) müssen Sie labelOnlyBase=False setzen, um kleinere Ticks zu erhalten.

Ich habe eine benutzerdefinierte Funktion erstellt und matplotlib.ticker.FuncFormatter verwendet. Bei meinem Ansatz wird davon ausgegangen, dass die Ticks ganzzahlige Werte haben und dass Sie ein logisches Basis-10-Protokoll wünschen.

%Vor%

Wenn Sie die Hauptteilstriche nicht entfernen und subs = [2.0, 3.0, 6.0] verwenden, ist die Schriftgröße der Haupt- und Nebenstriche unterschiedlich (dies kann durch Verwendung von text.usetex:False in meinem matplotlibrc verursacht werden) )

    
Francesco Montesano 20.06.2013, 09:16
quelle
11

Sie können set_minor_tickformatter auf der entsprechenden Achse verwenden:

%Vor%

    
Evert 18.06.2013 11:31
quelle