ax.set_xlabel("Elapsed time [s]")
ax.set_ylabel("Cost [m]")
- err_hist = [0 for i in range(19)]
- val_list = [[] for i in range(19)]
- m = len(w[key][0])
+ M = len(w[key][0])
+ err_hist = [0 for i in range(M)]
+ val_list = [[] for i in range(M)]
mi = 999999999999
ma = -1
for i in range(len(w[key])):
- for j in range(m):
+ for j in range(M):
if w[key][i][j] == 0:
err_hist[j] += 1
else:
if v > ma: ma = v
print("min: {}, max: {}".format(mi, ma))
- maxes = [max(val_list[i]) for i in range(19)]
- mins = [min(val_list[i]) for i in range(19)]
- average = [np.average(val_list[i]) for i in range(19)]
+ maxes = [max(val_list[i]) for i in range(M)]
+ MAX = max(maxes)
+ mins = [min(val_list[i]) for i in range(M)]
+ average = [np.average(val_list[i]) for i in range(M)]
# 95 and 5 are not used
- perct_95 = [np.percentile(val_list[i], [95])[0] for i in range(19)]
- perct_5 = [np.percentile(val_list[i], [5])[0] for i in range(19)]
+ perct_95 = [np.percentile(val_list[i], [95])[0] for i in range(M)]
+ perct_5 = [np.percentile(val_list[i], [5])[0] for i in range(M)]
# percentiles by 10 %
- perct_10 = [np.percentile(val_list[i], [10])[0] for i in range(19)]
- perct_20 = [np.percentile(val_list[i], [20])[0] for i in range(19)]
- perct_30 = [np.percentile(val_list[i], [30])[0] for i in range(19)]
- perct_40 = [np.percentile(val_list[i], [40])[0] for i in range(19)]
- perct_50 = [np.percentile(val_list[i], [50])[0] for i in range(19)]
- perct_60 = [np.percentile(val_list[i], [60])[0] for i in range(19)]
- perct_70 = [np.percentile(val_list[i], [70])[0] for i in range(19)]
- perct_80 = [np.percentile(val_list[i], [80])[0] for i in range(19)]
- perct_90 = [np.percentile(val_list[i], [90])[0] for i in range(19)]
+ perct_10 = [np.percentile(val_list[i], [10])[0] for i in range(M)]
+ perct_20 = [np.percentile(val_list[i], [20])[0] for i in range(M)]
+ perct_30 = [np.percentile(val_list[i], [30])[0] for i in range(M)]
+ perct_40 = [np.percentile(val_list[i], [40])[0] for i in range(M)]
+ perct_50 = [np.percentile(val_list[i], [50])[0] for i in range(M)]
+ perct_60 = [np.percentile(val_list[i], [60])[0] for i in range(M)]
+ perct_70 = [np.percentile(val_list[i], [70])[0] for i in range(M)]
+ perct_80 = [np.percentile(val_list[i], [80])[0] for i in range(M)]
+ perct_90 = [np.percentile(val_list[i], [90])[0] for i in range(M)]
# find index of the closest to average path
average_i = [
# plot percentiles
ax.fill_between(
- range(1, 20),
+ range(1, M+1),
mins,
maxes,
color="tab:orange",
label="Minimum and maximum, optimized",
)
ax.fill_between(
- range(1, 20),
+ range(1, M+1),
perct_10,
perct_90,
color="tab:orange",
label="10 % and 90 % percentile, optimized",
)
ax.fill_between(
- range(1, 20),
+ range(1, M+1),
perct_20,
perct_80,
color="tab:orange",
label="20 % and 80 % percentile, optimized",
)
ax.fill_between(
- range(1, 20),
+ range(1, M+1),
perct_30,
perct_70,
color="tab:orange",
label="30 % and 70 % percentile, optimized",
)
ax.fill_between(
- range(1, 20),
+ range(1, M+1),
perct_40,
perct_60,
color="tab:orange",
)
# plot median and average
ax.plot(
- range(1, 20),
+ range(1, M+1),
perct_50,
color="tab:orange",
alpha=1,
label="50 % percentile (median), optimized",
)
ax.plot(
- range(1, 20),
+ range(1, M+1),
average,
color="tab:red",
alpha=1,
)
# plot average before path optimization
ax.plot(
- range(1, 20),
- [np.average([i for i in no_opt[key].values()]) for i in range(1, 20)],
+ range(1, M+1),
+ [np.average([i for i in no_opt[key].values()]) for i in range(1, M+1)],
label="Average cost before optimization",
color="tab:blue",
linestyle="--",
)
- plt.xticks(range(1, 20), ["{:.2f}".format(0.1 * (k+1)) for k in range(m)])
+ plt.xticks(range(1, M+1), ["{:.2f}".format(0.1 * (k+1)) for k in range(M)])
ax.minorticks_on()
plt.rcParams["font.size"] = 21