Plotten mit Python
Verfasst: Donnerstag 21. April 2011, 14:18
Hallo zusammen!
Ich möchte aus Python zwei Listen gegeneinander plotten und verwende dazu matplotlib.pyplot. Dabei möchte ich, dass pyplot zur Achsenbeschriftung KEINE wissenschaftliche Notation verwendet, sondern die Werte so an die Ticks schreibt, wie sie sind.
Die x-Liste enthält Daten im Format yyyymmdd (das soll auch so), wichtig ist hier nur, dass es quasi große Zahlen sind. Die y-Liste enthält ebenfalls große Werte in der Größenordnung von 10.000.
Das Problem ist nun, dass die Labels der Y-Achse richtig angezeigt werden, pyplot die Labels der x-Werte jedoch in wissenschaftliche Schreibweise uwandelt. Das bringt mir natürlich in diesem Falle überhaupt nichts, ich will meine Daten da stehen haben!
Ich habe schon wild gegoogelt, finde dazu einige Tipps unter Verwendung von ticker.ScalarFormatter, allerdings funktioniert das alles nicht.
Das, was ich ganz simpel habe ist:
Dabei macht es auch keinen Unterschied, ob ich die Einträge von date in Strings umwandle oder nicht.
Das hatte ich jetzt versuchsweise umgeschrieben zu:
Aber ohne Erfolg, es sieht immer noch genauso aus wie vorher.
Das kann doch nicht so schwer sein, pyplot zu sagen, dass er die Finger von den Werten lassen soll, oder?
Bin für jegliche Hilfe dankbar
Ich möchte aus Python zwei Listen gegeneinander plotten und verwende dazu matplotlib.pyplot. Dabei möchte ich, dass pyplot zur Achsenbeschriftung KEINE wissenschaftliche Notation verwendet, sondern die Werte so an die Ticks schreibt, wie sie sind.
Die x-Liste enthält Daten im Format yyyymmdd (das soll auch so), wichtig ist hier nur, dass es quasi große Zahlen sind. Die y-Liste enthält ebenfalls große Werte in der Größenordnung von 10.000.
Das Problem ist nun, dass die Labels der Y-Achse richtig angezeigt werden, pyplot die Labels der x-Werte jedoch in wissenschaftliche Schreibweise uwandelt. Das bringt mir natürlich in diesem Falle überhaupt nichts, ich will meine Daten da stehen haben!

Ich habe schon wild gegoogelt, finde dazu einige Tipps unter Verwendung von ticker.ScalarFormatter, allerdings funktioniert das alles nicht.
Das, was ich ganz simpel habe ist:
Code: Alles auswählen
import mathplotlib.pyplot as plt
value_list = [10000, 9000, 11000, 9000, 12000, 10000]
date = [20110104, 20110105, 20110106, 20110107, 20110108, 20110109]
plt.figure(1)
plt.plot(date, value_list, 'r-')
plt.xlabel('date')
plt.ylabel('flux')
plt.savefig('flux.png')
Das hatte ich jetzt versuchsweise umgeschrieben zu:
Code: Alles auswählen
import mathplotlib.pyplot as plt
value_list = [10000, 9000, 11000, 9000, 12000, 10000]
date = [20110104, 20110105, 20110106, 20110107, 20110108, 20110109]
plt.figure(1)
ax = plt.subplot(111)
plt.plot(date, value_list, 'r-')
formx = ticker.ScalarFormatter()
formx.set_scientific(False)
ax.xaxis.set_major_formatter(formx)
plt.xlabel('date')
plt.ylabel('flux')
plt.savefig('flux.png')
Das kann doch nicht so schwer sein, pyplot zu sagen, dass er die Finger von den Werten lassen soll, oder?
Bin für jegliche Hilfe dankbar
