2017-06-06 8 views
0

Ich schrieb den folgenden Code:Python Plotten Ausgabe

full_list = [0, 10**3, 10**6, 10**9, 10**12, 10**15] 

list1 = [] 
list2 = [] 
list3 = [] 

for hash_power in full_list: 
    x1 = Calc1() 
    list1.append(x1) 

    x2 = Calc2() 
    list2.append(x2) 

    x3 = Calc3() 
    list3.append(x3) 

fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.plot(full_list,list1,'r-->',full_list,list2,'g--o',full_list,list3,'b--o') 
plt.show() 

Wenn die Figur erzeugt wird, erzeugt die Verteilung auf der x-Achse nur den ersten und letzten Punkt, ignoriert alle Punkte aus der full_list in der Mitte .

Ich weiß, die Reichweite ist wirklich groß, aber gibt es eine Möglichkeit, es anzuzeigen?

+0

Welche Bibliothek verwenden Sie für 'plt'? – gmoshkin

+0

import matplotlib.pyplot as plt – user123

+0

Was ist der Ausgang für Calc1/2/3? – TLOwater

Antwort

1

Wenn Ihre Achsen mit großen numerischen Werten gefüllt sind, sollten Sie in Betracht ziehen, Ihre Bildachsen so zu skalieren, dass sie logarithmisch statt linear sind. Schritte dazu finden Sie in this stackoverflow thread.

Oder noch einfacher, Anpassung der Skala auf Ihre Abbildung Achsen in nicht-logarithmischen Inkrementen, die in this thread gefunden wird.

+0

Ja es funktioniert diese Weise N = len (full_list) n = np.arange (N) Dann habe ich jede full_list durch n ersetzt – user123