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