Intermezzo: A Data Analysis Session
# -*- coding: utf-8 -*- """ Created on Wed Nov 05 15:18:17 2014 @author: dell """ import pandas as pd import numpy as np import datetime import matplotlib.pyplot as plt import matplotlib.dates as mdates if __name__ == '__main__': df = pd.read_table('carbon.dioxide.txt', header = None) data = np.array(list(df[0].values)) fig = plt.figure() ax = fig.add_subplot(331) ax.plot(data) x = np.linspace(1, len(data), len(data)) ax1 = fig.add_subplot(332) ax1.plot(data-315) ax1.plot(((x/350)**2)*35,'--') ax3 = fig.add_subplot(333) ax3.plot(data-315) ax3.plot(((x/350)**1.35)*35, '--') ax4 = fig.add_subplot(334) myres = data-315-((x/350)**1.35)*35 ax4.plot(myres) ax1 = fig.add_subplot(335) from scipy.interpolate import UnivariateSpline #xs = np.linspace(1, len(data), len(data)*100) xs = np.linspace(1, len(data), 1000) s = UnivariateSpline(x, myres) ys = s(xs) ax1.plot(xs, ys) ax1.plot(myres) ax2 = fig.add_subplot(336) ax2.plot(myres) ax2.plot(3*np.sin(2*np.pi*x/12)) ax3 = fig.add_subplot(337) myres1 = myres - 3*np.sin(2*np.pi*x/12) #myres2 = data - 315-35*(x/350)**1.35 - 3*np.sin(np.pi*2*x/12) s1 = UnivariateSpline(x, myres1, s = 850) ys1 = s1(xs) ax3.plot(xs, ys1) ax3.plot(myres1) ax3.axhline(y = 1, ls = '--') ax3.axhline(y = -1, ls = ':') ax8 = fig.add_subplot(338) myfun = 315 + (x/350)**1.35*35 + 3*np.sin(2*np.pi*x/12) + 0.75*np.sin(2*np.pi*x/6) + 0.1 ax8.plot(myfun, ls=':') ax8.plot(data) ax9 = fig.add_subplot(339) x = np.linspace(1, 800, 800) myfun = 315 + (x/350)**1.35*35 + 3*np.sin(2*np.pi*x/12) + 0.75*np.sin(2*np.pi*x/6) + 0.1 ax9.plot(myfun, ls=':') ax9.plot(data) ax9.set_xlim(1, 800) plt.show()
https://files.cnblogs.com/hluo/carbon.dioxide.rar
样条平滑函数还没有弄明白回事。