Skip to content
Snippets Groups Projects
Commit 590097fb authored by 数学の武士's avatar 数学の武士
Browse files

Add level controll for plot_contour

parent 51fb34c9
No related branches found
No related tags found
No related merge requests found
import sys import sys
import numpy as np import numpy as np
class Args: class Args:
def __init__(self, filename, func, var=None, mval=None, oname=None, out=None, ndim = None, min_y = None, max_y = None, title=None, transpose = None): def __init__(self, filename, func, var=None, mval=None, oname=None, out=None, ndim = None, min_y = None, max_y = None, title=None, levels=None):
if out == "plotter_lib_pngs/": if out == "plotter_lib_pngs/":
print("Output directory name can't be equal to " + out) print("Output directory name can't be equal to " + out)
sys.exit(-1) sys.exit(-1)
...@@ -16,7 +16,7 @@ class Args: ...@@ -16,7 +16,7 @@ class Args:
self.title = title self.title = title
self.min_y = min_y self.min_y = min_y
self.max_y = max_y self.max_y = max_y
self.transpose = transpose self.levels = levels
self.CorrVals() self.CorrVals()
...@@ -46,10 +46,6 @@ class Args: ...@@ -46,10 +46,6 @@ class Args:
if None in self.max_y: if None in self.max_y:
self.max_y = None self.max_y = None
if type(self.transpose) is not list:
self.transpose = [self.transpose]
if None in self.transpose:
self.transpose = None
# param_lists = [self.oname, self.var, self.mval, self.min_y, self.max_y] # param_lists = [self.oname, self.var, self.mval, self.min_y, self.max_y]
# lens = [] # lens = []
......
...@@ -28,7 +28,6 @@ class Plotter: ...@@ -28,7 +28,6 @@ class Plotter:
self.min_y = None self.min_y = None
self.max_y = None self.max_y = None
self.min_max_var_vals = None self.min_max_var_vals = None
self.transpose = None
def __check_arg_dim_equiv(self, args): def __check_arg_dim_equiv(self, args):
if args.var != None and args.mval != None: if args.var != None and args.mval != None:
...@@ -68,7 +67,11 @@ class Plotter: ...@@ -68,7 +67,11 @@ class Plotter:
self.title = args.title self.title = args.title
self.min_y = args.min_y self.min_y = args.min_y
self.max_y = args.max_y self.max_y = args.max_y
self.transpose = args.transpose
if args.levels != None:
self.levels = args.levels
else:
self.levels = 25
self.if_manual_plot = kwargs.get('if_manual_plot', False) self.if_manual_plot = kwargs.get('if_manual_plot', False)
self.if_save_result = kwargs.get('if_save_result', True) self.if_save_result = kwargs.get('if_save_result', True)
...@@ -99,24 +102,15 @@ class Plotter: ...@@ -99,24 +102,15 @@ class Plotter:
p.process_file(self.ndim, self.var, self.mval) p.process_file(self.ndim, self.var, self.mval)
self.fig_count = len(self.var) self.fig_count = len(self.var)
if self.transpose == None:
self.transpose = [False for _ in self.var]
def __plot(self): def __plot(self):
os.system("mkdir -p " + self.out) os.system("mkdir -p " + self.out)
x_name = self.file_column_names[0] x_name = self.file_column_names[0]
fig = plt.figure() fig = plt.figure()
for i in range(len(self.var)): for y_name in self.var:
y_name = self.var[i]
trnsp = self.transpose[i]
if trnsp:
plt.plot(self.file_data[0].data[y_name], self.file_data[0].data[x_name], linewidth=4)
else:
plt.plot(self.file_data[0].data[x_name], self.file_data[0].data[y_name], linewidth=4) plt.plot(self.file_data[0].data[x_name], self.file_data[0].data[y_name], linewidth=4)
plt.legend(self.var) plt.legend(self.var)
plt.xlabel(x_name, fontsize=10, fontweight='bold') plt.xlabel(x_name, fontsize=10, fontweight='bold')
...@@ -177,12 +171,7 @@ class Plotter: ...@@ -177,12 +171,7 @@ class Plotter:
fig = plt.figure() fig = plt.figure()
plt.ylim([min_val, max_val]) plt.ylim([min_val, max_val])
for i in range(len(self.var)): for y_name in self.var:
y_name = self.var[i]
trnsp = self.transpose[i]
if trnsp:
plt.plot(self.file_data[data_i].data[y_name], self.file_data[data_i].data[x_name], linewidth=4)
else:
plt.plot(self.file_data[data_i].data[x_name], self.file_data[data_i].data[y_name], linewidth=4) plt.plot(self.file_data[data_i].data[x_name], self.file_data[data_i].data[y_name], linewidth=4)
plt.legend(self.var) plt.legend(self.var)
...@@ -239,15 +228,10 @@ class Plotter: ...@@ -239,15 +228,10 @@ class Plotter:
vmin = min_val[self.var[i]]; vmax = max_val[self.var[i]]; vmin = min_val[self.var[i]]; vmax = max_val[self.var[i]];
levels = np.linspace(vmin, vmax, 25) levels = np.linspace(vmin, vmax, self.levels)
if self.function == self.plot_diff: if self.function == self.plot_diff:
if self.transpose[i]:
cp = ax.contourf(Y, X, Z.T)
else:
cp = ax.contourf(X, Y, Z) cp = ax.contourf(X, Y, Z)
else:
if self.transpose[i]:
cp = ax.contourf(Y, X, Z.T, vmin=vmin, vmax=vmax, levels=levels)
else: else:
cp = ax.contourf(X, Y, Z, vmin=vmin, vmax=vmax, levels=levels) cp = ax.contourf(X, Y, Z, vmin=vmin, vmax=vmax, levels=levels)
# fig.colorbar(ScalarMappable(norm=cp.norm, cmap=cp.cmap),ticks=range(min_val[self.var[i]], max_val[self.var[i]])) # fig.colorbar(ScalarMappable(norm=cp.norm, cmap=cp.cmap),ticks=range(min_val[self.var[i]], max_val[self.var[i]]))
...@@ -313,9 +297,7 @@ class Plotter: ...@@ -313,9 +297,7 @@ class Plotter:
duration = self.ani_period * len(self.filename) duration = self.ani_period * len(self.filename)
i = 0 i = 0
vartp = list(range(len(self.var))) for var in self.var:
for var, i in zip(self.var, vartp):
if self.title == None: if self.title == None:
title = var title = var
else: else:
...@@ -331,9 +313,6 @@ class Plotter: ...@@ -331,9 +313,6 @@ class Plotter:
ax.set_ylabel(y_name) ax.set_ylabel(y_name)
Z = data.data[var] Z = data.data[var]
if self.transpose[i]:
cp = ax.contourf(Y, X, Z.T, vmin=min_val[var], vmax=max_val[var])
else:
cp = ax.contourf(X, Y, Z, vmin=min_val[var], vmax=max_val[var]) cp = ax.contourf(X, Y, Z, vmin=min_val[var], vmax=max_val[var])
fig.colorbar(cp) # Add a colorbar to a plot fig.colorbar(cp) # Add a colorbar to a plot
plt.close(fig) plt.close(fig)
...@@ -376,12 +355,8 @@ class Plotter: ...@@ -376,12 +355,8 @@ class Plotter:
x_name = self.file_column_names[2] x_name = self.file_column_names[2]
x = self.file_data[0].data[x_name] x = self.file_data[0].data[x_name]
for i in range(len(self.var)): for var in self.var:
var = self.var[i] avg_data = self.__avg(self.file_data[0].data, var)
avg_data = self.__avg(self.file_data[0].data, var[i])
if self.transpose[i]:
plt.plot(avg_data, x, linewidth=4)
else:
plt.plot(x, avg_data, linewidth=4) plt.plot(x, avg_data, linewidth=4)
plt.legend(self.var) plt.legend(self.var)
......
...@@ -4,7 +4,7 @@ from pathlib import PurePath ...@@ -4,7 +4,7 @@ from pathlib import PurePath
import natsort import natsort
import os import os
manual_plot=False manual_plot=True
save_result=True save_result=True
def dump(filename, var=[None], mval=[None]): def dump(filename, var=[None], mval=[None]):
...@@ -14,13 +14,13 @@ def dump(filename, var=[None], mval=[None]): ...@@ -14,13 +14,13 @@ def dump(filename, var=[None], mval=[None]):
Plot.set(args, if_manual_plot=manual_plot, if_save_result=save_result) Plot.set(args, if_manual_plot=manual_plot, if_save_result=save_result)
Plot.dump() Plot.dump()
def plot(filename, out = './', oname = 'fig.png', var=[None], mval=[None], min_y = None, max_y = None, transpose = None): def plot(filename, out = './', oname = 'fig.png', var=[None], mval=[None], min_y = None, max_y = None):
Plot = Plotter() Plot = Plotter()
args = Args([filename], Plot.plot, var=var, mval=mval, oname=oname, out=out, transpose = transpose) args = Args([filename], Plot.plot, var=var, mval=mval, oname=oname, out=out)
Plot.set(args, if_manual_plot=manual_plot, if_save_result=save_result) Plot.set(args, if_manual_plot=manual_plot, if_save_result=save_result)
Plot.plot() Plot.plot()
def ani_plot(filename, out = './', oname = 'fig.gif', var=[None], mval=[None], min_y = None, max_y = None, transpose = None): def ani_plot(filename, out = './', oname = 'fig.gif', var=[None], mval=[None], min_y = None, max_y = None):
pp = str(PurePath(filename).parent) + '/' pp = str(PurePath(filename).parent) + '/'
name = str(PurePath(filename).name ) name = str(PurePath(filename).name )
command = 'find ' + pp + ' -name ' + "'" + name + "'" command = 'find ' + pp + ' -name ' + "'" + name + "'"
...@@ -30,17 +30,17 @@ def ani_plot(filename, out = './', oname = 'fig.gif', var=[None], mval=[None], m ...@@ -30,17 +30,17 @@ def ani_plot(filename, out = './', oname = 'fig.gif', var=[None], mval=[None], m
names = natsort.natsorted(out_res,reverse=False) names = natsort.natsorted(out_res,reverse=False)
Plot = Plotter() Plot = Plotter()
args = Args(names, Plot.ani_plot, var=var, mval=mval, oname=oname, out=out, min_y=min_y, max_y=max_y, transpose = transpose) args = Args(names, Plot.ani_plot, var=var, mval=mval, oname=oname, out=out, min_y=min_y, max_y=max_y)
Plot.set(args, if_manual_plot=manual_plot, if_save_result=save_result) Plot.set(args, if_manual_plot=manual_plot, if_save_result=save_result)
Plot.ani_plot() Plot.ani_plot()
def plot_contour(filename, out = './', oname = [None], var=[None], mval=[None], min_y = None, max_y = None, transpose = None): def plot_contour(filename, out = './', oname = [None], var=[None], mval=[None], min_y = None, max_y = None, levels=None):
Plot = Plotter() Plot = Plotter()
args = Args([filename], Plot.plot_contour, var=var, mval=mval, oname=oname, out=out, min_y=min_y, max_y=max_y, transpose=transpose) args = Args([filename], Plot.plot_contour, var=var, mval=mval, oname=oname, out=out, min_y=min_y, max_y=max_y, levels=levels)
Plot.set(args, if_manual_plot=manual_plot, if_save_result=save_result) Plot.set(args, if_manual_plot=manual_plot, if_save_result=save_result)
Plot.plot_contour() Plot.plot_contour()
def ani_plot_contour(filename, out = './', oname = [None], var=[None], mval=[None], min_y = None, max_y = None, transpose = None): def ani_plot_contour(filename, out = './', oname = [None], var=[None], mval=[None], min_y = None, max_y = None):
pp = str(PurePath(filename).parent) + '/' pp = str(PurePath(filename).parent) + '/'
name = str(PurePath(filename).name ) name = str(PurePath(filename).name )
command = 'find ' + pp + ' -name ' + "'" + name + "'" command = 'find ' + pp + ' -name ' + "'" + name + "'"
...@@ -50,19 +50,19 @@ def ani_plot_contour(filename, out = './', oname = [None], var=[None], mval=[Non ...@@ -50,19 +50,19 @@ def ani_plot_contour(filename, out = './', oname = [None], var=[None], mval=[Non
names = natsort.natsorted(out_res,reverse=False) names = natsort.natsorted(out_res,reverse=False)
Plot = Plotter() Plot = Plotter()
args = Args(names, Plot.ani_plot_contour, var=var, mval=mval, oname=oname, out=out, min_y=min_y, max_y=max_y, transpose = transpose) args = Args(names, Plot.ani_plot_contour, var=var, mval=mval, oname=oname, out=out, min_y=min_y, max_y=max_y)
Plot.set(args, if_manual_plot=manual_plot, if_save_result=save_result) Plot.set(args, if_manual_plot=manual_plot, if_save_result=save_result)
Plot.ani_plot_contour() Plot.ani_plot_contour()
def avg_plot(filename, out = './', oname = 'fig.png', var=[None], mval=[None], transpose = None): def avg_plot(filename, out = './', oname = 'fig.png', var=[None], mval=[None]):
Plot = Plotter() Plot = Plotter()
args = Args([filename], Plot.avg_plot, var=var, mval=mval, oname=oname, out=out, transpose = None) args = Args([filename], Plot.avg_plot, var=var, mval=mval, oname=oname, out=out)
Plot.set(args, if_manual_plot=manual_plot, if_save_result=save_result) Plot.set(args, if_manual_plot=manual_plot, if_save_result=save_result)
Plot.avg_plot() Plot.avg_plot()
def plot_diff(filename, ndim, out = './', oname = 'fig.png', var=[None], mval=[None], transpose = None): def plot_diff(filename, ndim, out = './', oname = 'fig.png', var=[None], mval=[None]):
Plot = Plotter() Plot = Plotter()
args = Args(filename, Plot.plot_diff, var=var, mval=mval, oname=oname, out=out, ndim=ndim, transpose = None) args = Args(filename, Plot.plot_diff, var=var, mval=mval, oname=oname, out=out, ndim=ndim)
Plot.set(args, if_manual_plot=manual_plot, if_save_result=save_result) Plot.set(args, if_manual_plot=manual_plot, if_save_result=save_result)
Plot.plot_diff() Plot.plot_diff()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment