2016-08-30 2 views
0

Mit dem folgenden Code möchte ich die y-Tick-Label-Nummern durch Sterne ersetzen, deren Anzahl jeder Zahl entspricht. Zum Beispiel sollte das oberste Etikett 10 Sterne haben, die so ausgerichtet sind, dass der letzte Stern an der Stelle steht, an der sich die 0 von 10 gerade befindet. Sie müssen dynamisch generiert werden, was bedeutet, ich will mit plt.xticks vermeiden ([ ‚**********‘, .....]):Matplotlib-Marker als Tick Labels

import matplotlib.pyplot as plt 

x = [1, 2] 
y = [1, 4] 
labels = ['Bogs', 'Slogs'] 
plt.plot(x, y, 'ro') 
plt.xticks(x, labels, rotation='vertical') 
plt.margins(0.2) 
plt.subplots_adjust(bottom=0.15) 
plt.show() 

Hier ist im Grunde, was ich Ich versuche zu produzieren (dynamische Zahlen von Sternen pro den zugrunde liegenden y-Tick Label Werte):

Like this Vielen Dank im Voraus!

+0

Ich vermute, du meinst, du willst nicht 'plt.yticks (['**********', .....])' 'verwenden, dh 'y', nicht' x'? – Praveen

Antwort

1

Eigentlich nicht schreibe die Sterne, dann. Wenn Sie eine Programmiersprache verwenden, programmieren Sie! :-)

y_limit = 5 
y_labels = ['*' * i for i in range(y_limit)] 
plt.yticks(range(y_limit), y_labels) 
+0

Danke, Praveen. Eine Follow-up-Frage (die ich eigentlich hätte stellen sollen): Was, wenn ich will, dass die Sterne tatsächliche Sterne sind, wie bei marker = '*'? –

+0

@ DanceParty2 Oh, das ist schwieriger. Ich weiß nicht wie. Sie müssen die Marker möglicherweise außerhalb des Diagrammbereichs darstellen, denke ich ... Sie sollten wahrscheinlich eine separate Frage stellen. Wenn Sie können, schließen Sie ein, was Sie mit "marker = '*" in Ihrer erwarteten Ausgabezahl meinen. – Praveen

Verwandte Themen