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

Merge branch 'implement_transpouse_plots' into 'main'

Added transpose argument to plots/contour/ani_stuff

See merge request !1
parents 1a81c340 7d8f066d
No related branches found
No related tags found
1 merge request!1Added transpose argument to plots/contour/ani_stuff
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): 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):
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,6 +16,7 @@ class Args: ...@@ -16,6 +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.CorrVals() self.CorrVals()
...@@ -45,6 +46,10 @@ class Args: ...@@ -45,6 +46,10 @@ 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,6 +28,7 @@ class Plotter: ...@@ -28,6 +28,7 @@ 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:
...@@ -67,6 +68,7 @@ class Plotter: ...@@ -67,6 +68,7 @@ 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
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)
...@@ -103,9 +105,15 @@ class Plotter: ...@@ -103,9 +105,15 @@ class Plotter:
fig = plt.figure() fig = plt.figure()
for y_name in self.var: 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) 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')
...@@ -166,7 +174,12 @@ class Plotter: ...@@ -166,7 +174,12 @@ class Plotter:
fig = plt.figure() fig = plt.figure()
plt.ylim([min_val, max_val]) plt.ylim([min_val, max_val])
for y_name in self.var: 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) 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)
...@@ -224,9 +237,14 @@ class Plotter: ...@@ -224,9 +237,14 @@ 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, 25)
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]]))
...@@ -292,7 +310,9 @@ class Plotter: ...@@ -292,7 +310,9 @@ class Plotter:
duration = self.ani_period * len(self.filename) duration = self.ani_period * len(self.filename)
i = 0 i = 0
for var in self.var: vartp = list(range(len(self.var)))
for var, i in zip(self.var, vartp):
if self.title == None: if self.title == None:
title = var title = var
else: else:
...@@ -308,6 +328,9 @@ class Plotter: ...@@ -308,6 +328,9 @@ 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)
...@@ -350,8 +373,12 @@ class Plotter: ...@@ -350,8 +373,12 @@ 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 var in self.var: for i in range(len(self.var)):
avg_data = self.__avg(self.file_data[0].data, 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) plt.plot(x, avg_data, linewidth=4)
plt.legend(self.var) plt.legend(self.var)
......
...@@ -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): def plot(filename, out = './', oname = 'fig.png', var=[None], mval=[None], min_y = None, max_y = None, transpose = None):
Plot = Plotter() Plot = Plotter()
args = Args([filename], Plot.plot, var=var, mval=mval, oname=oname, out=out) args = Args([filename], Plot.plot, var=var, mval=mval, oname=oname, out=out, transpose = transpose)
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): def ani_plot(filename, out = './', oname = 'fig.gif', var=[None], mval=[None], min_y = None, max_y = None, transpose = 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) args = Args(names, Plot.ani_plot, var=var, mval=mval, oname=oname, out=out, min_y=min_y, max_y=max_y, transpose = transpose)
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): def plot_contour(filename, out = './', oname = [None], var=[None], mval=[None], min_y = None, max_y = None, transpose = 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) args = Args([filename], Plot.plot_contour, var=var, mval=mval, oname=oname, out=out, min_y=min_y, max_y=max_y, transpose=transpose)
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): def ani_plot_contour(filename, out = './', oname = [None], var=[None], mval=[None], min_y = None, max_y = None, transpose = 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) 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)
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]): def avg_plot(filename, out = './', oname = 'fig.png', var=[None], mval=[None], transpose = None):
Plot = Plotter() Plot = Plotter()
args = Args([filename], Plot.avg_plot, var=var, mval=mval, oname=oname, out=out) args = Args([filename], Plot.avg_plot, var=var, mval=mval, oname=oname, out=out, transpose = 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.avg_plot() Plot.avg_plot()
def plot_diff(filename, ndim, out = './', oname = 'fig.png', var=[None], mval=[None]): def plot_diff(filename, ndim, out = './', oname = 'fig.png', var=[None], mval=[None], transpose = None):
Plot = Plotter() Plot = Plotter()
args = Args(filename, Plot.plot_diff, var=var, mval=mval, oname=oname, out=out, ndim=ndim) args = Args(filename, Plot.plot_diff, var=var, mval=mval, oname=oname, out=out, ndim=ndim, transpose = 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.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