# Dieses Programm lasse ich in # ipython --pylab # laufen. import numpy as np import matplotlib.pyplot as plt # Daten aus Datei einlesen: tempData = np.loadtxt("GLB.Ts+dSST-v2.txt" , unpack=True) # Jahre getrennt speichern: years = tempData[0] # Temperaturen J-D getrennt speichern: preTemps = tempData[13] # Das waren hundertstel Grad Celsius. In Grad Celsius umrechnen: temps = preTemps/100 plt.plot(years,temps, color=(0.7,0.7,1.0), linewidth=2) # Jetzt die Glaettung berechnen: def slideAvg ( dataField, interval): # Hier den letzten Index des eingelesenen Feldes herausfinden: dflength = dataField.shape[0] # Intervall in Differenz plus minus umrechnen: diff = int ( 0.5*(interval-1) ) # Ausgabeliste initialisieren: resultList = [] #print diff for i in range(0, dflength - 2*diff): thisSum = 0 for j in range(0,2*diff+1): thisSum += dataField[i+j] thisAvg = thisSum/(2*diff+1) resultList.append(thisAvg) resultArray = np.array(resultList) return resultArray avgint = 15 avgtemps = slideAvg(temps, avgint) indDiff = int ( 0.5*(avgint-1) ) avgyears = years[indDiff:-indDiff] avgString = u"Gemittelt über %d Jahre" % avgint #plt.figtext(0.1,0.8, avgString) plt.figtext(0.2,0.75,avgString,size='large') plt.plot(avgyears,avgtemps, color='g', linewidth=2) if (1): for ii in range(0,avgyears.size): print "%d : %f C" % (avgyears[ii],avgtemps[ii]) plt.xlabel("Jahre") plt.ylabel("Temperaturdifferenz in Grad Celsius") outFileName = "temp-plot-avg%02d.png" % avgint savefig(outFileName, dpi=80)