Skip to content

Commit 647aa38

Browse files
fix some plotting errors
1 parent 711cdd7 commit 647aa38

3 files changed

Lines changed: 17 additions & 14 deletions

File tree

src/mud_examples/experiments.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,19 +122,21 @@ def plot_experiment_equipment(tolerances, res, prefix, fsize=32, linewidth=5,
122122
plt.show()
123123

124124

125-
def plot_experiment_measurements(measurements, res, prefix,
125+
def plot_experiment_measurements(res, prefix,
126126
fsize=32, linewidth=5,
127127
xlabel='Number of Measurements',
128128
save=True, legend=False):
129129
print("Plotting experiments involving increasing # of measurements.")
130130
plt.figure(figsize=(10, 10))
131131
for _res in res:
132132
_prefix, _in, _rm, _re = _res
133+
solutions = _in[-1]
134+
measurements = list(solutions.keys())
133135
regression_mean, slope_mean, \
134136
regression_vars, slope_vars, \
135137
means, variances = _rm
136138
plt.plot(measurements[:len(regression_mean)], regression_mean,
137-
label=f"{_prefix:10s} slope: {slope_mean:1.4f}",
139+
label=f"{_prefix:4s} slope: {slope_mean:1.4f}",
138140
lw=linewidth)
139141
plt.scatter(measurements[:len(means)], means, marker='x', lw=20)
140142
plt.xscale('log')
@@ -163,7 +165,7 @@ def plot_experiment_measurements(measurements, res, prefix,
163165
regression_vars, slope_vars, \
164166
means, variances = _rm
165167
plt.plot(measurements[:len(regression_vars)], regression_vars,
166-
label=f"{_prefix:10s} slope: {slope_vars:1.4f}",
168+
label=f"{_prefix:4s} slope: {slope_vars:1.4f}",
167169
lw=linewidth)
168170
plt.scatter(measurements[:len(variances)], variances,
169171
marker='x', lw=20)
@@ -172,7 +174,7 @@ def plot_experiment_measurements(measurements, res, prefix,
172174
plt.Axes.set_aspect(plt.gca(), 1)
173175
# if not len(np.unique(variances)) == 1:
174176
# plt.ylim(0.9 * min(variances), 1.3 * max(variances))
175-
plt.ylim(1E-5, 1E-3)
177+
plt.ylim(5E-6, 5E-4)
176178
plt.xlabel(xlabel, fontsize=fsize)
177179
if legend:
178180
plt.legend(fontsize=fsize * 0.8)

src/mud_examples/ode.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def main_ode(num_trials=20,
6363

6464
for example in example_list:
6565
print(f"Running example: {example}")
66-
if example == 'ode-mud-alt':
66+
if example == 'mud-alt':
6767
sensors = generate_sensors_ode(measurement_hertz=200, start_time=t_min, end_time=t_max)
6868
else:
6969
sensors = generate_sensors_ode(measurement_hertz=100, start_time=t_min, end_time=t_max)
@@ -79,15 +79,16 @@ def main_ode(num_trials=20,
7979
lam = np.random.rand(int(1E3)).reshape(-1,1)
8080
qoi = model(lam)
8181

82-
if example == 'ode-map':
82+
if example == 'map':
8383
def wrapper(num_obs, sd):
8484
return map_problem(domain=domain, lam=lam, qoi=qoi,
8585
sd=sd, qoi_true=qoi_true, num_obs=num_obs)
86-
else:
86+
elif example == 'mud':
8787
def wrapper(num_obs, sd):
8888
return mud_problem(domain=domain, lam=lam, qoi=qoi,
8989
sd=sd, qoi_true=qoi_true, num_obs=num_obs)
90-
90+
else:
91+
raise ValueError("Unknown example type")
9192

9293
_logger.info("Increasing Measurements Quantity Study")
9394
experiments, solutions = experiment_measurements(num_measurements=measurements,
@@ -97,8 +98,8 @@ def wrapper(num_obs, sd):
9798
fun=wrapper)
9899

99100
means, variances = extract_statistics(solutions, lam_true)
100-
regression_mean, slope_mean = fit_log_linear_regression(time_ratios, means)
101-
regression_vars, slope_vars = fit_log_linear_regression(time_ratios, variances)
101+
regression_mean, slope_mean = fit_log_linear_regression(measurements, means)
102+
regression_vars, slope_vars = fit_log_linear_regression(measurements, variances)
102103

103104
##########
104105

@@ -123,7 +124,7 @@ def wrapper(num_obs, sd):
123124
# TO DO clean all this up
124125
_in = (lam, qoi, sensors, qoi_true, experiments, solutions)
125126
_rm = (regression_mean, slope_mean, regression_vars, slope_vars, means, variances)
126-
example_name = '-'.join(example.split('-')[1:]).upper()
127+
example_name = example.upper()
127128
res.append((example_name, _in, _rm, _re))
128129

129130
# TODO check for existence of save directory, grab subset of measurements properly.

src/mud_examples/runner.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ def main(in_args):
103103
pass
104104

105105
if len(measurements) > 1 and inputdim == 1:
106-
plot_experiment_measurements(measurements, res,
106+
plot_experiment_measurements(res,
107107
f'figures/pde_{inputdim}D/' + example, fsize,
108108
linewidth, save=save)
109109

@@ -122,7 +122,7 @@ def main(in_args):
122122
time_ratios=time_ratios)
123123

124124
if len(time_ratios) > 1:
125-
plot_experiment_measurements(time_ratios, res,
125+
plot_experiment_measurements(res,
126126
'figures/ode/' + example,
127127
fsize, linewidth,
128128
save=save, legend=True)
@@ -185,7 +185,7 @@ def run_ode():
185185
0
186186
"""
187187
run_cmd = """--example ode --bayes --save \
188-
--num-trials 20 -r 0.1 0.5 1 -t 0.1
188+
--num-trials 20 -r 0.1 0.25 0.5 1 -t 0.1
189189
""".replace(' ','').replace('\n','').split(' ')
190190
main(run_cmd + sys.argv[1:])
191191

0 commit comments

Comments
 (0)