Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
plotter-nse
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
数学の武士
plotter-nse
Commits
bfac8439
Commit
bfac8439
authored
2 years ago
by
数学の武士
Browse files
Options
Downloads
Patches
Plain Diff
Add min max vals ani plot vals
parent
8335e76c
No related branches found
No related tags found
No related merge requests found
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
plotter/Args.py
+36
-3
36 additions, 3 deletions
plotter/Args.py
plotter/Plotter.py
+118
-58
118 additions, 58 deletions
plotter/Plotter.py
plotter/ProcData.py
+0
-1
0 additions, 1 deletion
plotter/ProcData.py
plotter/main.py
+5
-5
5 additions, 5 deletions
plotter/main.py
with
159 additions
and
67 deletions
plotter/Args.py
+
36
−
3
View file @
bfac8439
import
sys
import
numpy
as
np
class
Args
:
def
__init__
(
self
,
filename
,
func
,
var
=
[
None
]
,
mval
=
[
None
]
,
oname
=
[
None
]
,
out
=
[
None
]
,
ndim
=
None
):
def
__init__
(
self
,
filename
,
func
,
var
=
None
,
mval
=
None
,
oname
=
None
,
out
=
None
,
ndim
=
None
,
min_y
=
None
,
max_y
=
None
,
title
=
None
):
if
out
==
"
plotter_lib_pngs/
"
:
print
(
"
Output directory name can
'
t be equal to
"
+
out
)
sys
.
exit
(
-
1
)
...
...
@@ -13,6 +13,9 @@ class Args:
self
.
out
=
out
self
.
func
=
func
self
.
ndim
=
ndim
self
.
title
=
title
self
.
min_y
=
min_y
self
.
max_y
=
max_y
self
.
CorrVals
()
...
...
@@ -31,3 +34,33 @@ class Args:
self
.
mval
=
[
self
.
mval
]
if
None
in
self
.
mval
:
self
.
mval
=
None
if
type
(
self
.
min_y
)
is
not
list
:
self
.
min_y
=
[
self
.
min_y
]
if
None
in
self
.
min_y
:
self
.
min_y
=
None
if
type
(
self
.
max_y
)
is
not
list
:
self
.
max_y
=
[
self
.
max_y
]
if
None
in
self
.
max_y
:
self
.
max_y
=
None
# param_lists = [self.oname, self.var, self.mval, self.min_y, self.max_y]
# lens = []
# for param in param_lists:
# if param == None:
# continue
# if type(param) is not list:
# lens.append(1)
# else:
# lens.append(len(param))
# if len(lens) != 0:
# lens = np.array(lens, dtype = int)
# for i in range(1, len(lens)):
# if np.equal(lens[0], lens[i]).any() != True:
# print("Args fail")
# sys.exit(-1)
\ No newline at end of file
This diff is collapsed.
Click to expand it.
plotter/Plotter.py
+
118
−
58
View file @
bfac8439
...
...
@@ -12,14 +12,20 @@ class Plotter:
ani_pngs_dir
=
"
plotter_lib_pngs/
"
def
__init__
(
self
):
self
.
filename
=
""
self
.
out
=
""
self
.
oname
=
""
self
.
var
=
""
self
.
mval
=
""
self
.
function
=
""
self
.
variable
_names
=
""
self
.
filename
=
None
self
.
out
=
None
self
.
oname
=
None
self
.
var
=
None
self
.
mval
=
None
self
.
function
=
None
self
.
file_column
_names
=
None
self
.
title
=
None
self
.
file_data
=
None
self
.
plt_max_val
=
None
self
.
plt_min_val
=
None
self
.
min_y
=
None
self
.
max_y
=
None
self
.
min_max_var_vals
=
None
def
__check_arg_dim_equiv
(
self
,
args
):
if
args
.
var
!=
None
and
args
.
mval
!=
None
:
...
...
@@ -30,7 +36,7 @@ class Plotter:
def
__get_variable_names
(
self
):
var_names
=
[]
for
d
in
self
.
data
:
for
d
in
self
.
file_
data
:
names
=
d
.
variable_names
var_names
.
append
(
np
.
array
(
names
,
dtype
=
object
))
...
...
@@ -44,13 +50,24 @@ class Plotter:
print
(
"
Undefined variable names
"
)
sys
.
exit
(
-
1
)
self
.
variable
_names
=
var_names
[
0
]
self
.
file_column
_names
=
var_names
[
0
]
def
set
(
self
,
args
,
**
kwargs
):
self
.
__check_arg_dim_equiv
(
args
)
self
.
filename
=
args
.
filename
self
.
ndim
=
args
.
ndim
self
.
out
=
args
.
out
self
.
oname
=
args
.
oname
self
.
var
=
args
.
var
self
.
mval
=
args
.
mval
self
.
function
=
args
.
func
self
.
title
=
args
.
title
self
.
min_y
=
args
.
min_y
self
.
max_y
=
args
.
max_y
self
.
if_manual_plot
=
kwargs
.
get
(
'
if_manual_plot
'
,
False
)
self
.
if_save_result
=
kwargs
.
get
(
'
if_save_result
'
,
True
)
pData
=
[]
...
...
@@ -59,17 +76,10 @@ class Plotter:
p
.
get_variable_names
()
pData
.
append
(
p
)
self
.
data
=
copy
.
deepcopy
(
pData
)
self
.
file_
data
=
copy
.
deepcopy
(
pData
)
self
.
__get_variable_names
()
if
args
.
func
!=
self
.
dump
:
self
.
out
=
args
.
out
self
.
oname
=
args
.
oname
self
.
var
=
args
.
var
self
.
mval
=
args
.
mval
self
.
function
=
args
.
func
self
.
if_manual_plot
=
kwargs
.
get
(
'
if_manual_plot
'
,
False
)
self
.
if_save_result
=
kwargs
.
get
(
'
if_save_result
'
,
True
)
if
args
.
func
==
self
.
plot
or
args
.
func
==
self
.
ani_plot
:
self
.
ndim
=
1
...
...
@@ -78,21 +88,21 @@ class Plotter:
elif
args
.
func
==
self
.
avg_plot
:
self
.
ndim
=
3
if
self
.
var
==
None
and
len
(
self
.
variable
_names
)
!=
0
:
self
.
var
=
[
self
.
variable
_names
[
i
]
for
i
in
range
(
self
.
ndim
,
len
(
self
.
variable
_names
))]
if
self
.
var
==
None
and
len
(
self
.
file_column
_names
)
!=
0
:
self
.
var
=
[
self
.
file_column
_names
[
i
]
for
i
in
range
(
self
.
ndim
,
len
(
self
.
file_column
_names
))]
for
p
in
self
.
data
:
for
p
in
self
.
file_
data
:
p
.
process_file
(
self
.
ndim
,
self
.
var
,
self
.
mval
)
self
.
fig_count
=
len
(
self
.
var
)
def
__plot
(
self
):
os
.
system
(
"
mkdir -p
"
+
self
.
out
)
x_name
=
self
.
variable
_names
[
0
]
x_name
=
self
.
file_column
_names
[
0
]
fig
=
plt
.
figure
()
for
y_name
in
self
.
var
:
plt
.
plot
(
self
.
data
[
0
].
data
[
x_name
],
self
.
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
.
xlabel
(
x_name
,
fontsize
=
10
,
fontweight
=
'
bold
'
)
...
...
@@ -101,6 +111,36 @@ class Plotter:
else
:
plt
.
close
(
fig
)
if
self
.
if_save_result
:
fig
.
savefig
(
self
.
out
+
self
.
oname
[
0
])
def
__get_min_max_ax
(
self
):
min_max_var_vals
=
{
var
:
[]
for
var
in
self
.
var
}
i
=
0
for
var
in
self
.
var
:
max_val
=
self
.
file_data
[
i
].
data
[
var
][
0
]
min_val
=
self
.
file_data
[
i
].
data
[
var
][
0
]
for
data
in
self
.
file_data
:
maval
=
np
.
max
(
data
.
data
[
var
])
mival
=
np
.
min
(
data
.
data
[
var
])
if
maval
>
max_val
:
max_val
=
maval
if
mival
<
min_val
:
min_val
=
mival
min_max_var_vals
[
var
]
=
np
.
array
([
min_val
,
max_val
])
i
+=
1
max_vals
=
np
.
array
([
min_max_var_vals
[
var
][
1
]
for
var
in
self
.
var
])
min_vals
=
np
.
array
([
min_max_var_vals
[
var
][
0
]
for
var
in
self
.
var
])
max_val
=
np
.
max
(
max_vals
)
min_val
=
np
.
min
(
min_vals
)
self
.
min_max_var_vals
=
np
.
array
([
min_val
,
max_val
])
def
__ani_plot
(
self
):
if
self
.
if_save_result
:
png_names
=
[]
...
...
@@ -108,20 +148,25 @@ class Plotter:
os
.
system
(
"
mkdir -p
"
+
self
.
ani_pngs_dir
)
names
=
natsort
.
natsorted
(
self
.
filename
,
reverse
=
False
)
x_name
=
self
.
variable
_names
[
0
]
x_name
=
self
.
file_column
_names
[
0
]
data_i
=
0
# max_val = -1e9
# min_val = 1e9
if
self
.
max_y
==
None
:
max_val
=
self
.
min_max_var_vals
[
1
]
else
:
max_val
=
self
.
max_y
[
0
]
# for y_name in self.var:
# local_max = np.
if
self
.
min_y
==
None
:
min_val
=
self
.
min_max_var_vals
[
0
]
else
:
min_val
=
self
.
min_y
[
0
]
for
datafile
in
names
:
fig
=
plt
.
figure
()
plt
.
ylim
([
min_val
,
max_val
])
for
y_name
in
self
.
var
:
plt
.
plot
(
self
.
data
[
data_i
].
data
[
x_name
],
self
.
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
.
xlabel
(
x_name
,
fontsize
=
10
,
fontweight
=
'
bold
'
)
...
...
@@ -143,8 +188,8 @@ class Plotter:
def
__plot_contour
(
self
):
os
.
system
(
"
mkdir -p
"
+
self
.
out
)
x_name
=
self
.
variable
_names
[
0
]
y_name
=
self
.
variable
_names
[
1
]
x_name
=
self
.
file_column
_names
[
0
]
y_name
=
self
.
file_column
_names
[
1
]
if
self
.
oname
==
None
:
fig_names
=
self
.
var
...
...
@@ -161,9 +206,9 @@ class Plotter:
else
:
title
=
self
.
title
X
=
self
.
data
[
0
].
data
[
x_name
]
Y
=
self
.
data
[
0
].
data
[
y_name
]
Z
=
self
.
data
[
0
].
data
[
self
.
var
[
i
]]
X
=
self
.
file_
data
[
0
].
data
[
x_name
]
Y
=
self
.
file_
data
[
0
].
data
[
y_name
]
Z
=
self
.
file_
data
[
0
].
data
[
self
.
var
[
i
]]
cp
=
ax
.
contourf
(
X
,
Y
,
Z
)
fig
.
colorbar
(
cp
)
# Add a colorbar to a plot
...
...
@@ -177,13 +222,14 @@ class Plotter:
def
__get_min_max_bar
(
self
):
self
.
filename
=
natsort
.
natsorted
(
self
.
filename
,
reverse
=
False
)
self
.
vals
=
{
var
:
[]
for
var
in
self
.
var
}
self
.
min_max_var_
vals
=
{
var
:
[]
for
var
in
self
.
var
}
i
=
0
for
var
in
self
.
var
:
max_val
=
-
1e9
min_val
=
1e9
max_val
=
self
.
file_data
[
i
].
data
[
var
][
0
][
0
]
min_val
=
self
.
file_data
[
i
].
data
[
var
][
0
][
0
]
for
data
in
self
.
data
:
for
data
in
self
.
file_
data
:
maval
=
np
.
max
(
data
.
data
[
var
])
mival
=
np
.
min
(
data
.
data
[
var
])
...
...
@@ -192,7 +238,9 @@ class Plotter:
if
mival
<
min_val
:
min_val
=
mival
self
.
vals
[
var
]
=
np
.
array
([
min_val
,
max_val
])
self
.
min_max_var_vals
[
var
]
=
np
.
array
([
min_val
,
max_val
])
i
+=
1
def
__ani_plot_contour
(
self
):
if
self
.
if_save_result
:
...
...
@@ -200,8 +248,8 @@ class Plotter:
os
.
system
(
"
mkdir -p
"
+
self
.
out
)
os
.
system
(
"
mkdir -p
"
+
self
.
ani_pngs_dir
)
x_name
=
self
.
variable
_names
[
0
]
y_name
=
self
.
variable
_names
[
1
]
x_name
=
self
.
file_column
_names
[
0
]
y_name
=
self
.
file_column
_names
[
1
]
if
self
.
oname
==
None
:
fig_names
=
self
.
var
...
...
@@ -210,8 +258,20 @@ class Plotter:
fig_names
=
self
.
oname
fig_end
=
""
X
=
self
.
data
[
0
].
data
[
x_name
]
Y
=
self
.
data
[
0
].
data
[
y_name
]
X
=
self
.
file_data
[
0
].
data
[
x_name
]
Y
=
self
.
file_data
[
0
].
data
[
y_name
]
if
self
.
max_y
==
None
:
max_val
=
{
var
:
self
.
min_max_var_vals
[
var
][
1
]
for
var
in
self
.
var
}
else
:
max_val
=
{
var
:
self
.
max_y
[
i
]
for
var
,
i
in
zip
(
self
.
var
,
list
(
range
(
len
(
self
.
var
))))}
if
self
.
min_y
==
None
:
min_val
=
{
var
:
self
.
min_max_var_vals
[
var
][
0
]
for
var
in
self
.
var
}
else
:
min_val
=
{
var
:
self
.
min_y
[
i
]
for
var
,
i
in
zip
(
self
.
var
,
list
(
range
(
len
(
self
.
var
))))}
# print(max_val)
i
=
0
for
var
in
self
.
var
:
...
...
@@ -223,14 +283,14 @@ class Plotter:
counter
=
0
png_names
=
[]
for
data
in
self
.
data
:
for
data
in
self
.
file_
data
:
fig
,
ax
=
plt
.
subplots
(
1
,
1
)
ax
.
set_title
(
title
)
ax
.
set_xlabel
(
x_name
)
ax
.
set_ylabel
(
y_name
)
Z
=
data
.
data
[
var
]
cp
=
ax
.
contourf
(
X
,
Y
,
Z
,
vmin
=
self
.
val
s
[
var
]
[
0
]
,
vmax
=
self
.
val
s
[
var
]
[
1
]
)
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
)
...
...
@@ -269,11 +329,11 @@ class Plotter:
def
__avg_plot
(
self
):
os
.
system
(
"
mkdir -p
"
+
self
.
out
)
fig
=
plt
.
figure
()
x_name
=
self
.
variable
_names
[
2
]
x
=
self
.
data
[
0
].
data
[
x_name
]
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
.
data
[
0
].
data
,
var
)
avg_data
=
self
.
__avg
(
self
.
file_
data
[
0
].
data
,
var
)
plt
.
plot
(
x
,
avg_data
,
linewidth
=
4
)
plt
.
legend
(
self
.
var
)
...
...
@@ -284,28 +344,28 @@ class Plotter:
if
self
.
if_save_result
:
fig
.
savefig
(
self
.
out
+
self
.
oname
[
0
])
def
__dump
(
self
):
for
variable_name
in
self
.
variable
_names
:
for
variable_name
in
self
.
file_column
_names
:
print
(
variable_name
,
end
=
'
'
)
print
(
'
\n
'
)
def
__plot_diff
(
self
):
for
name
in
self
.
variable
_names
:
if
self
.
data
[
0
].
data
[
name
].
shape
!=
self
.
data
[
1
].
data
[
name
].
shape
:
for
name
in
self
.
file_column
_names
:
if
self
.
file_
data
[
0
].
data
[
name
].
shape
!=
self
.
file_
data
[
1
].
data
[
name
].
shape
:
print
(
"
Data dimensions do not match
"
)
sys
.
exit
(
-
1
)
diff
=
{}
for
name
in
self
.
var
:
diff
[
name
]
=
self
.
data
[
0
].
data
[
name
]
-
self
.
data
[
1
].
data
[
name
]
diff
[
name
]
=
self
.
file_
data
[
0
].
data
[
name
]
-
self
.
file_
data
[
1
].
data
[
name
]
dim_variables
=
list
(
set
(
self
.
variable
_names
)
-
set
(
self
.
var
))
dim_variables
=
list
(
set
(
self
.
file_column
_names
)
-
set
(
self
.
var
))
for
name
in
dim_variables
:
diff
[
name
]
=
self
.
data
[
0
].
data
[
name
]
diff
[
name
]
=
self
.
file_
data
[
0
].
data
[
name
]
diffProcData
=
ProcData
()
diffProcData
.
data
=
diff
self
.
data
=
[
diffProcData
]
self
.
file_
data
=
[
diffProcData
]
basename0
=
os
.
path
.
basename
(
self
.
filename
[
0
])
basename1
=
os
.
path
.
basename
(
self
.
filename
[
1
])
...
...
@@ -323,7 +383,7 @@ class Plotter:
self
.
__plot
()
def
ani_plot
(
self
):
self
.
__get_min_max_
bar
()
self
.
__get_min_max_
ax
()
self
.
__ani_plot
()
def
avg_plot
(
self
):
...
...
@@ -341,6 +401,6 @@ class Plotter:
def
get_data
(
self
):
# filenames = [os.path.basename(name) for name in self.filename]
# return_data = {name : copy.deepcopy(data.data) for name, data in zip(filenames, self.data)}
return_data
=
[
copy
.
deepcopy
(
data
.
data
)
for
data
in
self
.
data
]
# return_data = {name : copy.deepcopy(data.data) for name, data in zip(filenames, self.
file_
data)}
return_data
=
[
copy
.
deepcopy
(
data
.
data
)
for
data
in
self
.
file_
data
]
return
return_data
\ No newline at end of file
This diff is collapsed.
Click to expand it.
plotter/ProcData.py
+
0
−
1
View file @
bfac8439
...
...
@@ -109,7 +109,6 @@ class ProcData:
column_names
=
self
.
var
if
self
.
mval
!=
None
:
print
(
self
.
mval
)
for
col
,
abs_val
in
zip
(
column_names
,
self
.
mval
):
check_variable_idx
=
np
.
where
(
self
.
variable_names
==
col
)[
0
][
0
]
idx
=
np
.
where
(
np
.
abs
(
file_data
[
check_variable_idx
])
>
abs_val
)[
0
]
...
...
This diff is collapsed.
Click to expand it.
plotter/main.py
+
5
−
5
View file @
bfac8439
...
...
@@ -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
]):
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
)
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
]):
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,7 +30,7 @@ def ani_plot(filename, out = './', oname = 'fig.gif', var=[None], mval=[None]):
names
=
natsort
.
natsorted
(
out_res
,
reverse
=
False
)
Plot
=
Plotter
()
args
=
Args
(
names
,
Plot
.
ani_plot
,
var
=
var
,
mval
=
mval
,
oname
=
oname
,
out
=
out
)
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
()
...
...
@@ -40,7 +40,7 @@ def plot_contour(filename, out = './', oname = [None], var=[None], mval=[None]):
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
]):
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,7 +50,7 @@ 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
)
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
()
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment