#!/usr/bin/env python
from pandas import *
import matplotlib.pyplot as plt
import os
import sys
import platform
import numpy.fft as np
# name of plots folder
plotfold='plots'
# System specific info
if platform.system()=='Darwin':comsep="/"
else: comsep="\\"
# How many columns should I plot?
numcol=6
if len(sys.argv)2:
ylim=1500
root = sys.argv[2]
else:
ylim=1200
root = sys.argv[1]
for subdir, dirs, files in os.walk(root):
# plot each file
for file in files:
if str(file)[-4:]=='.csv':
print 'plotting '+str(file)+'...'
# load csv as data frame
df=pandas.io.parsers.read_csv(subdir+comsep+file)
for i in range(0,len(df.Timestamp)):
df.Timestamp[i] = datetime.strptime(df.Timestamp[i], '%a %b %d %H:%M:%S %Y')
# We only want the first 6 columns
df = df.ix[:,0:numcol]
if len(sys.argv)>=2:
if sys.argv[1]=='-c' or sys.argv[1]=='-f':
plotfold='plots_Specialty'
df2 = df
df=pandas.DataFrame(df2.Timestamp)
df['Residence']=df2['P1rms (A)']+df2['P2rms (A)']
df['Specialty']=df2['P3rms (A)']+df2['P4rms (A)']
if sys.argv[1]=='-f':
df2['Residence']=np.fft(df['Residence'])
df2['Specialty']=np.fft(df['Specialty'])
df=df2
print 'Fourier Transformation Complete'
plotfold='plots_Specialty_fft'
# set up plot
plt.figure()
df.plot(df.Timestamp,alpha=0.6,linewidth=2.3) # add transparency to see overlapping colors
plt.tight_layout(pad=1.08)
plt.legend(loc='best') # add legend in non-intrusive location
plt.legend(loc=5,prop={'size':14}) #
plt.ylabel('Current')
plt.xlabel('Time')
plt.gcf().autofmt_xdate()
plt.gcf().set_size_inches(12.7,9.2)
plt.gca().set_ylim([0,ylim])
stamp = df.Timestamp[0]
day = datetime.strftime(stamp,'%a')
DOM=datetime.strftime(stamp,'%d')
month = datetime.strftime(stamp,'%b')
year = datetime.strftime(stamp,'%Y')
plt.title(subdir+' '+day+' '+month+' '+DOM+' '+year)
# keep plot
# check for existing plots folder,
# create one if it doesn't exist
if plotfold not in os.listdir(subdir):
print '** adding plots directory to ',subdir
os.mkdir(subdir+comsep+plotfold)
# save in plots directory
spsubs = str(subdir).split(comsep)
filnam=''
for piece in range(len(spsubs)-4,len(spsubs)-1):
filnam+='_'+spsubs[piece]
filnam+='_'+str(file)[:-4]
saveto=subdir+comsep+plotfold+comsep+filnam
print '**** saving plot to ',saveto
plt.savefig(saveto)
plt.close()
kilojoules$ ./canaryCrawler.py -f 35ca7/
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas-0.14.0-py2.7-macosx-10.9-x86_64.egg/pandas/io/excel.py:626: UserWarning: Installed openpyxl is not supported at this time. Use >=1.6.1 and
Подробнее здесь: [url]https://stackoverflow.com/questions/27348875/pandas-numpy-matplotlib-overflowerror-date-value-out-of-range[/url]
У меня есть код для сканирования каждого файла в каталоге и построения графиков каждого встреченного файла CSV. Каждый CSV-файл имеет заголовок вида [code]Timestamp, P1rms (A), P2rms (A), P3rms (A), P4rms (A), P5rms (A), Vrms (V), P1 theta, P2 theta, P3 theta, P4 theta, P5 theta
Mon Sep 30 00:00:00 2013, 128, 128, 180, 177, 192, 43, 7, 7, 8, 8, 48 Mon Sep 30 00:00:01 2013, 127, 127, 182, 178, 193, 43, 8, 8, 8, 8, 49 # ect.... [/code] Я разрабатываю вариант визуализации БПФ, и при БПФ у меня возникает ошибка переполнения. вот моя точная проблема: Когда я запускаю свой код: [code]#!/usr/bin/env python from pandas import * import matplotlib.pyplot as plt import os import sys import platform import numpy.fft as np
# name of plots folder plotfold='plots'
# System specific info if platform.system()=='Darwin':comsep="/" else: comsep="\\"
print 'plotting '+str(file)+'...' # load csv as data frame df=pandas.io.parsers.read_csv(subdir+comsep+file) for i in range(0,len(df.Timestamp)): df.Timestamp[i] = datetime.strptime(df.Timestamp[i], '%a %b %d %H:%M:%S %Y')
# We only want the first 6 columns df = df.ix[:,0:numcol]
if len(sys.argv)>=2: if sys.argv[1]=='-c' or sys.argv[1]=='-f': plotfold='plots_Specialty' df2 = df df=pandas.DataFrame(df2.Timestamp) df['Residence']=df2['P1rms (A)']+df2['P2rms (A)'] df['Specialty']=df2['P3rms (A)']+df2['P4rms (A)'] if sys.argv[1]=='-f': df2['Residence']=np.fft(df['Residence']) df2['Specialty']=np.fft(df['Specialty']) df=df2 print 'Fourier Transformation Complete' plotfold='plots_Specialty_fft'
# set up plot plt.figure() df.plot(df.Timestamp,alpha=0.6,linewidth=2.3) # add transparency to see overlapping colors plt.tight_layout(pad=1.08) plt.legend(loc='best') # add legend in non-intrusive location plt.legend(loc=5,prop={'size':14}) # plt.ylabel('Current') plt.xlabel('Time') plt.gcf().autofmt_xdate() plt.gcf().set_size_inches(12.7,9.2) plt.gca().set_ylim([0,ylim])
stamp = df.Timestamp[0] day = datetime.strftime(stamp,'%a') DOM=datetime.strftime(stamp,'%d') month = datetime.strftime(stamp,'%b') year = datetime.strftime(stamp,'%Y')
# check for existing plots folder, # create one if it doesn't exist if plotfold not in os.listdir(subdir): print '** adding plots directory to ',subdir os.mkdir(subdir+comsep+plotfold)
# save in plots directory spsubs = str(subdir).split(comsep) filnam='' for piece in range(len(spsubs)-4,len(spsubs)-1): filnam+='_'+spsubs[piece] filnam+='_'+str(file)[:-4] saveto=subdir+comsep+plotfold+comsep+filnam print '**** saving plot to ',saveto plt.savefig(saveto) plt.close() [/code] Я получаю следующую ошибку: [code]kilojoules$ ./canaryCrawler.py -f 35ca7/ /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas-0.14.0-py2.7-macosx-10.9-x86_64.egg/pandas/io/excel.py:626: UserWarning: Installed openpyxl is not supported at this time. Use >=1.6.1 and
Доброе утро, разработчики. Я знаю, что этот вопрос задавался раньше, но я не нашел решения своей проблемы в этих ответах. Сначала я хотел бы сказать вам, что я всего лишь новичок в Unity :p, ну, вот моя проблема: я создаю игру с разбиванием...
Как следует из названия, я пытаюсь написать некоторый код на qml, который по сути запускает предупреждающую вспышку всякий раз, когда значение выходит за пределы того, что установлено как «нормальное», и когда оно возвращается обратно в этот...
Как следует из названия, я пытаюсь написать некоторый код на qml, который по сути запускает предупреждающую вспышку всякий раз, когда значение выходит за пределы того, что установлено как «нормальное», и когда оно возвращается обратно в этот...
Как следует из названия, я пытаюсь написать некоторый код на qml, который по сути запускает предупреждающую вспышку всякий раз, когда значение выходит за пределы того, что установлено как «нормальное», и когда оно возвращается обратно в этот...