Refatoração dos métodos de exibir e salvar gráfico

This commit is contained in:
Petrônio Cândido de Lima e Silva 2017-01-20 13:51:20 -02:00
parent b0fd83a839
commit 3cc0e0ebda
5 changed files with 39 additions and 25 deletions

View File

@ -10,10 +10,8 @@ from mpl_toolkits.mplot3d import Axes3D
#from sklearn.cross_validation import KFold #from sklearn.cross_validation import KFold
from pyFTS.benchmarks import Measures from pyFTS.benchmarks import Measures
from pyFTS.partitioners import Grid from pyFTS.partitioners import Grid
from pyFTS.common import Membership, FuzzySet, FLR, Transformations from pyFTS.common import Membership, FuzzySet, FLR, Transformations, Util
import time
current_milli_time = lambda: int(round(time.time() * 1000))
def getIntervalStatistics(original, models): def getIntervalStatistics(original, models):
ret = "Model & RMSE & MAPE & Sharpness & Resolution & Coverage \\ \n" ret = "Model & RMSE & MAPE & Sharpness & Resolution & Coverage \\ \n"
@ -37,15 +35,6 @@ def plotDistribution(dist):
vmin=0, vmax=1, edgecolors=None) vmin=0, vmax=1, edgecolors=None)
def uniquefilename(name):
if '.' in name:
tmp = name.split('.')
return tmp[0] + str(current_milli_time()) + '.' + tmp[1]
else:
return name + str(current_milli_time())
def plotComparedSeries(original, models, colors, typeonlegend=False, save=False, file=None,tam=[20, 5]): def plotComparedSeries(original, models, colors, typeonlegend=False, save=False, file=None,tam=[20, 5]):
fig = plt.figure(figsize=tam) fig = plt.figure(figsize=tam)
ax = fig.add_subplot(111) ax = fig.add_subplot(111)
@ -89,10 +78,9 @@ def plotComparedSeries(original, models, colors, typeonlegend=False, save=False,
ax.set_xlabel('T') ax.set_xlabel('T')
ax.set_xlim([0, len(original)]) ax.set_xlim([0, len(original)])
if save: Util.showAndSaveImage(fig,file,save)
plt.show()
fig.savefig(uniquefilename(file))
plt.close(fig)
def plotComparedIntervalsAhead(original, models, colors, distributions, time_from, time_to, def plotComparedIntervalsAhead(original, models, colors, distributions, time_from, time_to,
@ -158,10 +146,7 @@ def plotComparedIntervalsAhead(original, models, colors, distributions, time_fro
ax.set_xlabel('T') ax.set_xlabel('T')
ax.set_xlim([0, len(original)]) ax.set_xlim([0, len(original)])
if save: Util.showAndSaveImage(fig, file, save)
plt.show()
fig.savefig(uniquefilename(file))
plt.close(fig)
def plotCompared(original, forecasts, labels, title): def plotCompared(original, forecasts, labels, title):

View File

@ -17,3 +17,10 @@ def boxcox(original, plambda):
else: else:
modified = [math.log(original[t]) for t in np.arange(0, n)] modified = [math.log(original[t]) for t in np.arange(0, n)]
return np.array(modified) return np.array(modified)
def Z(original):
mu = np.mean(original)
sigma = np.std(original)
z = [(k - mu)/sigma for k in original]
return z

20
common/Util.py Normal file
View File

@ -0,0 +1,20 @@
import time
import matplotlib.pyplot as plt
current_milli_time = lambda: int(round(time.time() * 1000))
def uniquefilename(name):
if '.' in name:
tmp = name.split('.')
return tmp[0] + str(current_milli_time()) + '.' + tmp[1]
else:
return name + str(current_milli_time())
def showAndSaveImage(fig,file,flag):
if flag:
plt.show()
fig.savefig(uniquefilename(file))
plt.close(fig)

View File

@ -4,12 +4,12 @@ import matplotlib as plt
import matplotlib.colors as pltcolors import matplotlib.colors as pltcolors
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D from mpl_toolkits.mplot3d import Axes3D
from pyFTS.common import Membership from pyFTS.common import Membership, Util
def plotSets(data, sets, titles): def plotSets(data, sets, titles, tam=[12, 10], save=False, file=None):
num = len(sets) num = len(sets)
fig = plt.figure(figsize=[12, 10]) fig = plt.figure(figsize=tam)
maxx = max(data) maxx = max(data)
minx = min(data) minx = min(data)
h = 1/num h = 1/num
@ -24,4 +24,6 @@ def plotSets(data, sets, titles):
elif s.mf == Membership.gaussmf: elif s.mf == Membership.gaussmf:
tmpx = [ kk for kk in np.arange(s.lower, s.upper)] tmpx = [ kk for kk in np.arange(s.lower, s.upper)]
tmpy = [s.membership(kk) for kk in np.arange(s.lower, s.upper)] tmpy = [s.membership(kk) for kk in np.arange(s.lower, s.upper)]
ax0.plot(tmpx, tmpy) ax0.plot(tmpx, tmpy)
Util.showAndSaveImage(fig, file, save)

View File

@ -204,7 +204,7 @@ class ProbabilisticFTS(ifts.IntervalFTS):
# gerar o intervalo # gerar o intervalo
norm = sum(norms) norm = sum(norms)
if norm == 0: if norm == 0:
ret.append([0, 0]) ret.append(0)
else: else:
ret.append(sum(mp) / norm) ret.append(sum(mp) / norm)