Skip to content

Commit 15aee12

Browse files
committed
[nb/all] Remove markers
1 parent 563a08d commit 15aee12

File tree

4 files changed

+356
-101
lines changed

4 files changed

+356
-101
lines changed

notebooks/04-Intraday-Market.ipynb

+3-3
Large diffs are not rendered by default.

notebooks/04-Intraday-Market.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
sns.palplot(palette)
7373

7474

75-
# In[57]:
75+
# In[58]:
7676

7777

7878
df_bal = load.balancing_prices()
@@ -89,7 +89,7 @@
8989
df_prices = pd.melt(df_prices, id_vars=x, var_name=var_name, value_name=value_name)
9090

9191
sns.set_palette(sns.cubehelix_palette(4, start=.5, rot=-.75, reverse=True))
92-
sns.lineplot(x=x, y=value_name, hue=var_name, style=var_name, ci="sd", markers=True, data=df_prices)
92+
sns.lineplot(x=x, y=value_name, hue=var_name, style=var_name, ci="sd", markers=False, data=df_prices)
9393

9494
sns.despine(offset=10)
9595
plt.xticks(np.arange(0, 24, 2));

notebooks/07-Results.ipynb

+245-63
Large diffs are not rendered by default.

notebooks/07-Results.py

+106-33
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# coding: utf-8
33

44
# <h1>Table of Contents &lt;br&gt;&lt;/br&gt;<span class="tocSkip"></span></h1>
5-
# <div class="toc"><ul class="toc-item"><li><ul class="toc-item"><li><span><a href="#Imports-and-Data-loading" data-toc-modified-id="Imports-and-Data-loading-0.1"><span class="toc-item-num">0.1&nbsp;&nbsp;</span>Imports and Data loading</a></span></li><li><span><a href="#Regular-Profit" data-toc-modified-id="Regular-Profit-0.2"><span class="toc-item-num">0.2&nbsp;&nbsp;</span>Regular Profit</a></span></li><li><span><a href="#Charging-Stations" data-toc-modified-id="Charging-Stations-0.3"><span class="toc-item-num">0.3&nbsp;&nbsp;</span>Charging Stations</a></span></li></ul></li><li><span><a href="#Baseline-Charging" data-toc-modified-id="Baseline-Charging-1"><span class="toc-item-num">1&nbsp;&nbsp;</span>Baseline Charging</a></span></li><li><span><a href="#Intraday" data-toc-modified-id="Intraday-2"><span class="toc-item-num">2&nbsp;&nbsp;</span>Intraday</a></span><ul class="toc-item"><li><span><a href="#Benchmark" data-toc-modified-id="Benchmark-2.1"><span class="toc-item-num">2.1&nbsp;&nbsp;</span>Benchmark</a></span></li><li><span><a href="#Risk-Averse-(r=0.3,-acc=90)" data-toc-modified-id="Risk-Averse-(r=0.3,-acc=90)-2.2"><span class="toc-item-num">2.2&nbsp;&nbsp;</span>Risk Averse (r=0.3, acc=90)</a></span></li></ul></li><li><span><a href="#Balancing" data-toc-modified-id="Balancing-3"><span class="toc-item-num">3&nbsp;&nbsp;</span>Balancing</a></span><ul class="toc-item"><li><span><a href="#Benchmark" data-toc-modified-id="Benchmark-3.1"><span class="toc-item-num">3.1&nbsp;&nbsp;</span>Benchmark</a></span></li><li><span><a href="#Risk-Averse-(r=0.5,-acc=70)" data-toc-modified-id="Risk-Averse-(r=0.5,-acc=70)-3.2"><span class="toc-item-num">3.2&nbsp;&nbsp;</span>Risk Averse (r=0.5, acc=70)</a></span></li></ul></li><li><span><a href="#Integrated" data-toc-modified-id="Integrated-4"><span class="toc-item-num">4&nbsp;&nbsp;</span>Integrated</a></span><ul class="toc-item"><li><span><a href="#Risk-Averse-(r=0.5,0.3,-acc=70,90)" data-toc-modified-id="Risk-Averse-(r=0.5,0.3,-acc=70,90)-4.1"><span class="toc-item-num">4.1&nbsp;&nbsp;</span>Risk Averse (r=0.5,0.3, acc=70,90)</a></span></li><li><span><a href="#Risk-Seeking-(r=0.2,0.00,-acc=70,90)" data-toc-modified-id="Risk-Seeking-(r=0.2,0.00,-acc=70,90)-4.2"><span class="toc-item-num">4.2&nbsp;&nbsp;</span>Risk Seeking (r=0.2,0.00, acc=70,90)</a></span></li><li><span><a href="#RL-(acc=70,90)" data-toc-modified-id="RL-(acc=70,90)-4.3"><span class="toc-item-num">4.3&nbsp;&nbsp;</span>RL (acc=70,90)</a></span></li><li><span><a href="#RL-(acc=80,95)" data-toc-modified-id="RL-(acc=80,95)-4.4"><span class="toc-item-num">4.4&nbsp;&nbsp;</span>RL (acc=80,95)</a></span></li></ul></li><li><span><a href="#Plots" data-toc-modified-id="Plots-5"><span class="toc-item-num">5&nbsp;&nbsp;</span>Plots</a></span><ul class="toc-item"><li><span><a href="#Style" data-toc-modified-id="Style-5.1"><span class="toc-item-num">5.1&nbsp;&nbsp;</span>Style</a></span></li><li><span><a href="#Fleet-Utilization" data-toc-modified-id="Fleet-Utilization-5.2"><span class="toc-item-num">5.2&nbsp;&nbsp;</span>Fleet Utilization</a></span></li></ul></li></ul></div>
5+
# <div class="toc"><ul class="toc-item"><li><ul class="toc-item"><li><span><a href="#Imports-and-Data-loading" data-toc-modified-id="Imports-and-Data-loading-0.1"><span class="toc-item-num">0.1&nbsp;&nbsp;</span>Imports and Data loading</a></span></li><li><span><a href="#Regular-Profit" data-toc-modified-id="Regular-Profit-0.2"><span class="toc-item-num">0.2&nbsp;&nbsp;</span>Regular Profit</a></span></li><li><span><a href="#Charging-Stations" data-toc-modified-id="Charging-Stations-0.3"><span class="toc-item-num">0.3&nbsp;&nbsp;</span>Charging Stations</a></span></li></ul></li><li><span><a href="#Baseline-Charging" data-toc-modified-id="Baseline-Charging-1"><span class="toc-item-num">1&nbsp;&nbsp;</span>Baseline Charging</a></span></li><li><span><a href="#Intraday" data-toc-modified-id="Intraday-2"><span class="toc-item-num">2&nbsp;&nbsp;</span>Intraday</a></span><ul class="toc-item"><li><span><a href="#Benchmark" data-toc-modified-id="Benchmark-2.1"><span class="toc-item-num">2.1&nbsp;&nbsp;</span>Benchmark</a></span></li><li><span><a href="#Risk-Averse-(r=0.3,-acc=90)" data-toc-modified-id="Risk-Averse-(r=0.3,-acc=90)-2.2"><span class="toc-item-num">2.2&nbsp;&nbsp;</span>Risk Averse (r=0.3, acc=90)</a></span></li></ul></li><li><span><a href="#Balancing" data-toc-modified-id="Balancing-3"><span class="toc-item-num">3&nbsp;&nbsp;</span>Balancing</a></span><ul class="toc-item"><li><span><a href="#Benchmark" data-toc-modified-id="Benchmark-3.1"><span class="toc-item-num">3.1&nbsp;&nbsp;</span>Benchmark</a></span></li><li><span><a href="#Risk-Averse-(r=0.5,-acc=70)" data-toc-modified-id="Risk-Averse-(r=0.5,-acc=70)-3.2"><span class="toc-item-num">3.2&nbsp;&nbsp;</span>Risk Averse (r=0.5, acc=70)</a></span></li></ul></li><li><span><a href="#Integrated" data-toc-modified-id="Integrated-4"><span class="toc-item-num">4&nbsp;&nbsp;</span>Integrated</a></span><ul class="toc-item"><li><span><a href="#Risk-Averse-(r=0.5,0.3,-acc=70,90)" data-toc-modified-id="Risk-Averse-(r=0.5,0.3,-acc=70,90)-4.1"><span class="toc-item-num">4.1&nbsp;&nbsp;</span>Risk Averse (r=0.5,0.3, acc=70,90)</a></span></li><li><span><a href="#Risk-Seeking-(r=0.2,0.00,-acc=70,90)" data-toc-modified-id="Risk-Seeking-(r=0.2,0.00,-acc=70,90)-4.2"><span class="toc-item-num">4.2&nbsp;&nbsp;</span>Risk Seeking (r=0.2,0.00, acc=70,90)</a></span></li><li><span><a href="#RL-(acc=50,60)" data-toc-modified-id="RL-(acc=50,60)-4.3"><span class="toc-item-num">4.3&nbsp;&nbsp;</span>RL (acc=50,60)</a></span></li><li><span><a href="#RL-(acc=70,90)" data-toc-modified-id="RL-(acc=70,90)-4.4"><span class="toc-item-num">4.4&nbsp;&nbsp;</span>RL (acc=70,90)</a></span></li><li><span><a href="#RL-(acc=80,95)" data-toc-modified-id="RL-(acc=80,95)-4.5"><span class="toc-item-num">4.5&nbsp;&nbsp;</span>RL (acc=80,95)</a></span></li><li><span><a href="#RL-(acc=90,99)" data-toc-modified-id="RL-(acc=90,99)-4.6"><span class="toc-item-num">4.6&nbsp;&nbsp;</span>RL (acc=90,99)</a></span></li><li><span><a href="#RL-(acc=100,100)" data-toc-modified-id="RL-(acc=100,100)-4.7"><span class="toc-item-num">4.7&nbsp;&nbsp;</span>RL (acc=100,100)</a></span></li></ul></li><li><span><a href="#Plots" data-toc-modified-id="Plots-5"><span class="toc-item-num">5&nbsp;&nbsp;</span>Plots</a></span><ul class="toc-item"><li><span><a href="#Style" data-toc-modified-id="Style-5.1"><span class="toc-item-num">5.1&nbsp;&nbsp;</span>Style</a></span></li><li><span><a href="#Fleet-Utilization" data-toc-modified-id="Fleet-Utilization-5.2"><span class="toc-item-num">5.2&nbsp;&nbsp;</span>Fleet Utilization</a></span></li></ul></li></ul></div>
66

77
# ## Imports and Data loading
88

@@ -89,7 +89,7 @@ def read_results(path):
8989

9090
# ## Risk Averse (r=0.3, acc=90)
9191

92-
# In[15]:
92+
# In[8]:
9393

9494

9595
df_i = read_results("../results/intraday-risk-averse.csv")
@@ -123,14 +123,22 @@ def read_results(path):
123123
# In[11]:
124124

125125

126+
df_in = read_results("../results/integrated-benchmark.csv")
127+
print(df_in.sum()/1000)
128+
profit_bench = df_in["profit_eur"].sum() / 1000
129+
130+
131+
# In[12]:
132+
133+
126134
df_in = read_results("../results/integrated-benchmark-acc-1.csv")
127135
print(df_in.sum()/1000)
128136
profit_bench = df_in["profit_eur"].sum() / 1000
129137

130138

131139
# ## Risk Averse (r=0.5,0.3, acc=70,90)
132140

133-
# In[12]:
141+
# In[13]:
134142

135143

136144
df_in = read_results("../results/integrated-risk-averse.csv")
@@ -140,22 +148,43 @@ def read_results(path):
140148

141149
# ## Risk Seeking (r=0.2,0.00, acc=70,90)
142150

143-
# In[13]:
151+
# In[14]:
144152

145153

146154
df_in = read_results("../results/integrated-risk-seeking.csv")
147155
df_in.sum()/1000
148156

149157

158+
# ## RL (acc=50,60)
159+
160+
# In[15]:
161+
162+
163+
df_rl = read_results("../results/accuracy/DDDQN-50-60_result.csv")
164+
print(df_rl.sum()/1000)
165+
profit_rl = df_rl["profit_eur"].sum() / 1000
166+
print("Risk factors - Balancing: {:.2f}. Intraday:{:.2f}".format(df_rl["risk_bal"].mean(), df_rl["risk_intr"].mean()))
167+
168+
print("Profit comparison - Balancing: {:+.0%}, Intraday: {:+.0%}, Integrated: {:+.0%}, , Benchmark: {:+.0%}".format(
169+
profit_rl / profit_bal,
170+
profit_rl / profit_intr,
171+
profit_rl / profit_in,
172+
profit_rl / profit_bench
173+
)
174+
175+
)
176+
177+
150178
# ## RL (acc=70,90)
151179

152-
# In[24]:
180+
# In[16]:
153181

154182

155-
df_in = read_results("../results/integrated-rl-1.csv")
156-
print(df_in.sum()/1000)
157-
profit_rl = df_in["profit_eur"].sum() / 1000
158-
print("Risk factors - Balancing: {:.2f}. Intraday:{:.2f}".format(df_in["risk_bal"].mean(), df_in["risk_intr"].mean()))
183+
df_rl = read_results("../results/accuracy/DDDQN-70-90_result.csv")
184+
#df_rl = read_results("~/Downloads/DDDQN-70-90_result.csv")
185+
print(df_rl.sum()/1000)
186+
profit_rl = df_rl["profit_eur"].sum() / 1000
187+
print("Risk factors - Balancing: {:.2f}. Intraday:{:.2f}".format(df_rl["risk_bal"].mean(), df_rl["risk_intr"].mean()))
159188

160189
print("Profit comparison - Balancing: {:+.0%}, Intraday: {:+.0%}, Integrated: {:+.0%}, , Benchmark: {:+.0%}".format(
161190
profit_rl / profit_bal,
@@ -168,29 +197,74 @@ def read_results(path):
168197

169198
# ## RL (acc=80,95)
170199

171-
# In[27]:
200+
# In[17]:
172201

173202

174-
df_in = read_results("../results/integrated-rl-80-95.csv")
175-
print("Risk factors - Balancing: {:.2f}. Intraday:{:.2f}".format(df_in["risk_bal"].mean(), df_in["risk_intr"].mean()))
176-
df_in.sum()/1000
203+
df_rl = read_results("../results/accuracy/DDDQN-80-95_result.csv")
204+
print(df_rl.sum()/1000)
205+
profit_rl = df_rl["profit_eur"].sum() / 1000
206+
print("Risk factors - Balancing: {:.2f}. Intraday:{:.2f}".format(df_rl["risk_bal"].mean(), df_rl["risk_intr"].mean()))
207+
208+
print("Profit comparison - Balancing: {:+.0%}, Intraday: {:+.0%}, Integrated: {:+.0%}, , Benchmark: {:+.0%}".format(
209+
profit_rl / profit_bal,
210+
profit_rl / profit_intr,
211+
profit_rl / profit_in,
212+
profit_rl / profit_bench
213+
)
214+
)
215+
216+
217+
# ## RL (acc=90,99)
218+
219+
# In[18]:
220+
221+
222+
df_rl = read_results("../results/accuracy/DDDQN-90-99_result.csv")
223+
print(df_rl.sum()/1000)
224+
profit_rl = df_rl["profit_eur"].sum() / 1000
225+
print("Risk factors - Balancing: {:.2f}. Intraday:{:.2f}".format(df_rl["risk_bal"].mean(), df_rl["risk_intr"].mean()))
226+
227+
print("Profit comparison - Balancing: {:+.0%}, Intraday: {:+.0%}, Integrated: {:+.0%}, , Benchmark: {:+.0%}".format(
228+
profit_rl / profit_bal,
229+
profit_rl / profit_intr,
230+
profit_rl / profit_in,
231+
profit_rl / profit_bench
232+
)
233+
)
234+
235+
236+
# ## RL (acc=100,100)
237+
238+
# In[19]:
239+
240+
241+
df_rl = read_results("../results/accuracy/DDDQN-100-100_result.csv")
242+
print(df_rl.sum()/1000)
243+
profit_rl = df_rl["profit_eur"].sum() / 1000
244+
print("Risk factors - Balancing: {:.2f}. Intraday:{:.2f}".format(df_rl["risk_bal"].mean(), df_rl["risk_intr"].mean()))
245+
246+
print("Profit comparison - Balancing: {:+.0%}, Intraday: {:+.0%}, Integrated: {:+.0%}, , Benchmark: {:+.0%}".format(
247+
profit_rl / profit_bal,
248+
profit_rl / profit_intr,
249+
profit_rl / profit_in,
250+
profit_rl / profit_bench
251+
)
252+
)
177253

178254

179255
# # Plots
180256

181257
# ## Style
182258

183-
# In[ ]:
259+
# In[20]:
184260

185261

186262
sns.set(rc={'figure.figsize':(10,6)})
187-
188-
sns.set_context("paper", font_scale=1.3)
263+
sns.set_context("paper", font_scale=1.3, rc={"lines.linewidth": 1.5, "lines.markersize": 7})
189264

190265
sns.set_style("white")
191266
sns.set_style("ticks")
192267

193-
194268
palette = sns.cubehelix_palette(5, start=.5, rot=-.75, reverse=True)
195269
sns.set_palette(palette)
196270

@@ -199,26 +273,25 @@ def read_results(path):
199273

200274
# ## Fleet Utilization
201275

202-
# In[ ]:
276+
# In[30]:
203277

204278

205279
df_stats = read_results("../results/stats-baseline.csv")
206-
df_stats["hour"] = df_stats.index.hour
207-
df_stats.head()
208-
209-
def labels(y):
210-
label = y.split("_")[0].title()
211-
label = "Connected" if label == "Charging" else label
212-
label = label.upper() if label == "Vpp" else label
213-
return label
214-
215-
Y = ["available_evs", "charging_evs", "vpp_evs"]
216-
for y in Y:
217-
ax = sns.lineplot(x="hour", y=y, ci="sd", markers=['X'], data=df_stats, label=labels(y))
218-
280+
281+
df_stats = df_stats[["available_evs", "charging_evs", "vpp_evs"]]
282+
df_stats.columns = ["Available", "Connected", "VPP"]
283+
284+
x = "Hour"
285+
value_name = "Number EVs"
286+
var_name = "Status"
287+
288+
df_stats[x] = df_stats.index.hour
289+
df_stats = pd.melt(df_stats, id_vars=x, var_name=var_name, value_name=value_name)
290+
291+
sns.set_palette(sns.cubehelix_palette(4, start=.5, rot=-.75, reverse=True))
292+
sns.lineplot(x=x, y=value_name, hue=var_name, style=var_name, ci="sd", markers=False, data=df_stats)
293+
219294
sns.despine(offset=10)
220-
ax.set(xlabel='Hour', ylabel='Number EVs')
221295
plt.xticks(np.arange(0, 24, 2));
222296
plt.yticks(np.arange(0, 500, 50));
223-
plt.savefig("../results/fig/fleet-utilization.png")
224297

0 commit comments

Comments
 (0)