2017-11-13 2 views
-1

Ich habe eine CSV mit 200 Datenpunkten. Wenn ich es plotte, nimmt die X-Achse Standardwerte von 0 bis 200. Jedoch entsprechen 4 Datenpunkte jedem Ereignis, also möchte ich Werte von 0 bis 50 auf der X-Achse haben.Matplotlib spezifizieren Achsenwerte innerhalb eines Intervalls

Das ist, was ich habe jetzt

import matplotlib.pyplot as plt 

fig1 = plt.figure() 
ax1 = fig1.add_subplot(111) 

ax1.plot(val, color='blue', label='t1') 
ax1.plot(val2, color='red', label='t2') 
ax1.plot(val3, color='green', label='t3') 
ax1.plot(val5, color='magenta', label='t4') 

plt.axis([0,200,0,0.8]) 

plt.xlabel('Values') 
plt.ylabel('Events') 
ax1.legend(loc='upper right') 

Irgendeine Idee, wie ich das ändern kann, um effektiv die Zahlen auf der x-Achse um 4 zu teilen?

Antwort

1

Verwenden x=np.arange(0,50,0.25) als x-Wert in Ihren Plots, als Beispiel:

ax1.plot(x,val, color='blue', label='t1') 
+0

@ImportanceOfBeingErnest Sie falsch sind, wird es 200. prüfen 'len (np.arange (0,50,0.25))' –

+0

Sorry, es könnte die Frage sein, die hier verwirrend sein könnte, aber wenn Sie 200 Punkte von 0 bis 50 haben, muss die Schrittgröße 0,25125 ... – ImportanceOfBeingErnest

+0

In diesem Fall können Sie 'np.linspace (0,50,200) verwenden '. –

2

Nun, Sie ordnen den Datenpunkten keinen x-Wert zu. Daher verwendet sie ihren Index als Standard.

Erstellen Sie ein Array mit der erforderlichen Länge wie x = np.linspace(0, 50, num=200) und verwenden Sie es für das Diagramm als ax1.plot(x, val).

Verwandte Themen