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 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):
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/":
print("Output directory name can't be equal to " + out)
sys.exit(-1)
......@@ -16,6 +16,7 @@ class Args:
self.title = title
self.min_y = min_y
self.max_y = max_y
self.transpose = transpose
self.CorrVals()
......@@ -45,6 +46,10 @@ 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,6 +28,7 @@ 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:
......@@ -67,6 +68,7 @@ class Plotter:
self.title = args.title
self.min_y = args.min_y
self.max_y = args.max_y
self.transpose = args.transpose
self.if_manual_plot = kwargs.get('if_manual_plot', False)
self.if_save_result = kwargs.get('if_save_result', True)
......@@ -103,8 +105,14 @@ class Plotter:
fig = plt.figure()
for y_name in self.var:
plt.plot(self.file_data[0].data[x_name], self.file_data[0].data[y_name], linewidth=4)
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.legend(self.var)
plt.xlabel(x_name, fontsize=10, fontweight='bold')
......@@ -165,9 +173,14 @@ class Plotter:
for datafile in names:
fig = plt.figure()
plt.ylim([min_val, max_val])
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)
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.legend(self.var)
plt.xlabel(x_name, fontsize=10, fontweight='bold')
......@@ -224,11 +237,16 @@ class Plotter:
vmin = min_val[self.var[i]]; vmax = max_val[self.var[i]];
levels = np.linspace(vmin, vmax, 25)
if self.function == self.plot_diff:
cp = ax.contourf(X, Y, Z)
if self.transpose[i]:
cp = ax.contourf(Y, X, Z.T)
else:
cp = ax.contourf(X, Y, Z)
else:
cp = ax.contourf(X, Y, Z, vmin=vmin, vmax=vmax, levels=levels)
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)
# 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)
......@@ -292,7 +310,9 @@ class Plotter:
duration = self.ani_period * len(self.filename)
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:
title = var
else:
......@@ -308,7 +328,10 @@ class Plotter:
ax.set_ylabel(y_name)
Z = data.data[var]
cp = ax.contourf(X, Y, Z, vmin=min_val[var], vmax=max_val[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])
fig.colorbar(cp) # Add a colorbar to a plot
plt.close(fig)
figname = var + str(counter)
......@@ -350,9 +373,13 @@ class Plotter:
x_name = self.file_column_names[2]
x = self.file_data[0].data[x_name]
for var in self.var:
avg_data = self.__avg(self.file_data[0].data, var)
plt.plot(x, avg_data, linewidth=4)
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)
plt.legend(self.var)
plt.xlabel(x_name, fontsize=10, fontweight='bold')
......
......@@ -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):
def plot(filename, out = './', oname = 'fig.png', var=[None], mval=[None], min_y = None, max_y = None, transpose = None):
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.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) + '/'
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)
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.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()
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.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) + '/'
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)
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.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()
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.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()
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.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