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 numpy as np
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/":
print("Output directory name can't be equal to " + out)
sys.exit(-1)
......@@ -16,7 +16,7 @@ class Args:
self.title = title
self.min_y = min_y
self.max_y = max_y
self.transpose = transpose
self.levels = levels
self.CorrVals()
......@@ -46,10 +46,6 @@ class Args:
if None in self.max_y:
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]
# lens = []
......
......@@ -28,7 +28,6 @@ class Plotter:
self.min_y = None
self.max_y = None
self.min_max_var_vals = None
self.transpose = None
def __check_arg_dim_equiv(self, args):
if args.var != None and args.mval != None:
......@@ -68,7 +67,11 @@ class Plotter:
self.title = args.title
self.min_y = args.min_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_save_result = kwargs.get('if_save_result', True)
......@@ -98,9 +101,6 @@ class Plotter:
for p in self.file_data:
p.process_file(self.ndim, self.var, self.mval)
self.fig_count = len(self.var)
if self.transpose == None:
self.transpose = [False for _ in self.var]
def __plot(self):
os.system("mkdir -p " + self.out)
......@@ -108,14 +108,8 @@ class Plotter:
fig = plt.figure()
for i in range(len(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)
for y_name in self.var:
plt.plot(self.file_data[0].data[x_name], self.file_data[0].data[y_name], linewidth=4)
plt.legend(self.var)
plt.xlabel(x_name, fontsize=10, fontweight='bold')
......@@ -176,14 +170,9 @@ class Plotter:
for datafile in names:
fig = plt.figure()
plt.ylim([min_val, max_val])
for i in range(len(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)
for y_name in self.var:
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.xlabel(x_name, fontsize=10, fontweight='bold')
......@@ -239,17 +228,12 @@ class Plotter:
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.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:
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(cp) # Add a colorbar to a plot
ax.set_title(title)
......@@ -313,9 +297,7 @@ class Plotter:
duration = self.ani_period * len(self.filename)
i = 0
vartp = list(range(len(self.var)))
for var, i in zip(self.var, vartp):
for var in self.var:
if self.title == None:
title = var
else:
......@@ -331,10 +313,7 @@ class Plotter:
ax.set_ylabel(y_name)
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
plt.close(fig)
figname = var + str(counter)
......@@ -376,13 +355,9 @@ class Plotter:
x_name = self.file_column_names[2]
x = self.file_data[0].data[x_name]
for i in range(len(self.var)):
var = self.var[i]
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)
for var in self.var:
avg_data = self.__avg(self.file_data[0].data, var)
plt.plot(x, avg_data, linewidth=4)
plt.legend(self.var)
plt.xlabel(x_name, fontsize=10, fontweight='bold')
......
......@@ -4,7 +4,7 @@ from pathlib import PurePath
import natsort
import os
manual_plot=False
manual_plot=True
save_result=True
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.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()
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.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) + '/'
name = str(PurePath(filename).name )
command = 'find ' + pp + ' -name ' + "'" + name + "'"
......@@ -30,17 +30,17 @@ def ani_plot(filename, out = './', oname = 'fig.gif', var=[None], mval=[None], m
names = natsort.natsorted(out_res,reverse=False)
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.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()
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.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) + '/'
name = str(PurePath(filename).name )
command = 'find ' + pp + ' -name ' + "'" + name + "'"
......@@ -50,19 +50,19 @@ def ani_plot_contour(filename, out = './', oname = [None], var=[None], mval=[Non
names = natsort.natsorted(out_res,reverse=False)
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.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()
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.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()
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.plot_diff()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment