# import plotly.plotly as py import plotly.graph_objs as go import plotly.figure_factory as ff from plotly import __version__ from plotly.offline import plot print(__version__) import numpy as np import pandas as pd import scipy from scipy import signal # import os # os.environ['HTTP_PROXY']="proxyhk.zte.com.cn" # data = pd.read_csv(os.getcwd()+'\wind_speed_laurel_nebraska.csv') # print('data length=%d' %(len(data))) # df = data[0:10] # table = ff.create_table(df) # iplot(table) # py.iplot(table, filename='wind-data-sample') # trace1 = go.Scatter( # x=list(range(len(list(data['10 Min Std Dev'])))), # y=list(data['10 Min Std Dev']), # mode='lines', # name='Wind Data' # ) # layout = go.Layout( # showlegend=True # ) # trace_data = [trace1] # fig = go.Figure(data=trace_data, layout=layout) # plot(fig, filename='wind-raw-data-plot.html',show_link = False) # py.iplot(fig, filename='wind-raw-data-plot') import pymysql try: con = pymysql.connect(host='localhost',user='root',password='mysql123',db='gp',charset='utf8') except pymysql.err.OperationalError as e: print('Error is '+str(e)) sys.exit() # df=pd.read_sql_query("SELECT date,close FROM hist_data WHERE code='000538' AND date>'2014-06-03' AND date < '2016-07-13' ORDER By date",con) # print(df) trace1 = go.Scatter( x=list(df['date']), y=list(df['close']), mode='lines', name='Wind Data' ) layout = go.Layout( showlegend=True ) trace_data = [trace1] fig = go.Figure(data=trace_data, layout=layout) # plot(fig, filename='wind-raw-data-plot.html') fc = 0.1 b = 0.08 N = int(np.ceil((4 / b))) if not N % 2: N += 1 n = np.arange(N) sinc_func = np.sinc(2 * fc * (n - (N - 1) / 2.)) window = 0.42 - 0.5 * np.cos(2 * np.pi * n / (N - 1)) + 0.08 * np.cos(4 * np.pi * n / (N - 1)) sinc_func = sinc_func * window sinc_func = sinc_func / np.sum(sinc_func) s = list(df['close']) new_signal = np.convolve(s, sinc_func) trace1 = go.Scatter( x=list(range(len(new_signal))), y=new_signal, mode='lines', name='Low-Pass Filter', marker=dict( color='#C54C82' ) ) layout = go.Layout( title='Low-Pass Filter', showlegend=True ) trace_data = [trace1] fig = go.Figure(data=trace_data, layout=layout) # plot(fig, filename='fft-low-pass-filter.html') fL = 0.1 fH = 0.3 b = 0.08 N = int(np.ceil((4 / b))) if not N % 2: N += 1 # Make sure that N is odd. n = np.arange(N) # low-pass filter hlpf = np.sinc(2 * fH * (n - (N - 1) / 2.)) hlpf *= np.blackman(N) hlpf = hlpf / np.sum(hlpf) # high-pass filter hhpf = np.sinc(2 * fL * (n - (N - 1) / 2.)) hhpf *= np.blackman(N) hhpf = hhpf / np.sum(hhpf) hhpf = -hhpf hhpf[int((N - 1) / 2)] += 1 h = np.convolve(hlpf, hhpf) s = list(df['close']) new_signal = np.convolve(s, h) trace1 = go.Scatter( x=list(range(len(new_signal))), y=new_signal, mode='lines', name='Band-Pass Filter', marker=dict( color='#BB47BE' ) ) layout = go.Layout( title='Band-Pass Filter', showlegend=True ) trace_data = [trace1] fig = go.Figure(data=trace_data, layout=layout) plot(fig, filename='fft-band-pass-filter.html')