matplotlib: Ändere Yaxis-Tick-Labels

8

Für jede Teilstrichbeschriftung auf der Y-Achse möchte ich Folgendes ändern: label -> 2^label

Ich zeichne Log-Log-Daten (Basis 2), aber ich möchte, dass die Beschriftungen die ursprünglichen Datenwerte anzeigen.

Ich weiß, dass ich die aktuellen y-Etiketten bekommen kann ylabels = plt.getp(plt.gca(), 'yticklabels')

Das gibt mir eine Liste: <a list of 9 Text yticklabel objects> jede davon ist ein <matplotlib.text.Text object at 0x...>

Ich habe mir die Dokumentation der Textobjekte in Ссылка angeschaut aber ich bin immer noch nicht sicher, was die korrekte Syntax ist, um die Zeichenfolge in jeder Textbezeichnung zu ändern.

Sobald ich die Etiketten ändere, könnte ich sie auf der Achse setzen mit:

plt.setp(plt.gca(), 'yticklabels', ylabels)

    
Joe 27.02.2013, 22:40
quelle

2 Antworten

9

Wenn Sie dies in einem allgemeinen Fall tun möchten, können Sie FuncFormatter verwenden (siehe: Format der matplotlib-Achsenbeschriftung , imshow: beschriftet wie jede beliebige Funktion der Bildindizes . Matplotlib set_major_formatter AttributeError )

In Ihrem Fall sollte folgendes funktionieren:

%Vor%

Das absturzende {} -Entweichen ist eine Konsequenz der neugestalteten Zeichenfolge frommating

    
tacaswell 27.02.2013, 23:43
quelle
0

Gemäß Ссылка

a = plt.gca()
a. set_yticks(list_of_labels)

    
Parker 02.05.2013 02:34
quelle

Tags und Links