2010-06-23 9 views
62

Ich zeichne ein Diagramm mit Matplotlib und Python wie der Beispielcode unten.Plot mit benutzerdefinierten Text für X-Achse Punkte

x = array([0,1,2,3]) 
y = array([20,21,22,23]) 
plot(x,y) 
show() 

Wie der Code oben auf der x-Achse ist, werde ich gezogen Wert 0.0, 0.5, 1.0, 1.5 das heißt die gleichen Werte meiner Referenz x Werte sehen.

Gibt es sowieso, um jeden Punkt von x zu einer anderen Zeichenfolge zuzuordnen? So zum Beispiel möchte ich X-Achse Monate Namen (Strings Jun, July,...) oder andere Zeichenfolgen wie Personen Namen ("John", "Arnold", ...) oder Uhrzeit ("12:20", "12:21", "12:22", ..) zeigen.

Wissen Sie, was ich tun kann oder welche Funktion ich mir ansehen soll?
Für meinen Zweck könnte es matplotlib.ticker der Hilfe sein?

Antwort

117

können Sie manuell einstellen xticks (und yticks) mit pylab.xticks:

import matplotlib.pyplot as plt 
import numpy as np 

x = np.array([0,1,2,3]) 
y = np.array([20,21,22,23]) 
my_xticks = ['John','Arnold','Mavis','Matt'] 
plt.xticks(x, my_xticks) 
plt.plot(x, y) 
plt.show() 

+1

großer Mann !!! Ich danke dir! – user311906

+24

'Rotation' ist manchmal auch nützlich:' plt.xticks (Bereich (5), ["einige", "Wörter", "wie", "x", "Ticks"], rotation = 45) ' – Adobe

+2

Und wie verteilen Sie die Artikel gleichmäßig entlang der x-Achse? Nehmen wir an, meine X-Achse hat intern 1 Million Punkte und ich möchte nur John, Arnold, Mavis und Matt entlang der Achse gleichmäßig verteilt anzeigen? – nottinhill