-
Notifications
You must be signed in to change notification settings - Fork 1
/
parallel_boxplots.R
356 lines (336 loc) · 17.7 KB
/
parallel_boxplots.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
#######################################################################
# parallel box plots normalised to mean and standard deviation (msd)
# simple versions with only most important parameters as category labels
#######################################################################
results_430_2020 <- fread(paste(getwd(), "2020_RCP430_beccs.txt", sep='/'))
results_430_2050 <- fread(paste(getwd(), "2050_RCP430_beccs.txt", sep='/'))
results_430_2100 <- fread(paste(getwd(), "2100_RCP430_beccs.txt", sep='/'))
results_650_2020 <- fread(paste(getwd(), "2020_RCP650_beccs.txt", sep='/'))
results_650_2050 <- fread(paste(getwd(), "2050_RCP650_beccs.txt", sep='/'))
results_650_2100 <- fread(paste(getwd(), "2100_RCP650_beccs.txt", sep='/'))
important_params <- c("BES", "BECCS", "BEBCS", "bc_yield_impact", "disc_rate", "elec_price", "bc_stab_fact", "c_intensity",
"c_price", "bes_eff", "bes_cc", "bebcs_cc","ccs_cost", "beccs_seq_fraction", "beccs_eff_penalty")
scenario.boxplots.filenames <- c( "BES430-simple-msd.tif",
"BEBCS430-simple-msd.tif",
"BECCS430-simple-msd.tif",
"BES650-simple-msd.tif",
"BEBCS650-simple-msd.tif",
"BECCS650-simple-msd.tif")
pdf("fig4.pdf", width=7.2, height=7)
par(mfrow=c(3,2))
par(mar=c(0,0,0,0))
par(oma=c(8,4,4,2))
par(xpd=T)
par(mgp=c(0,0.5,0))
par(las=2)
par(lwd=0.2)
par(ps=12)
##########################################
# RCP 430 BES
##########################################
box_norm <- scale(results_430_2020[,important_params,with=F], center = TRUE, scale = TRUE)
good_labels <- improve_labels(colnames(box_norm))
for (i in 1:NROW(colnames(box_norm))){
good_labels[i] <- param.to.label(colnames(box_norm)[i])
}
b0 <- boxplot(box_norm, plot=F)
bxp(b0, at=1:ncol(box_norm)*2-1,
xlim = c(1, ncol(box_norm)*2-1), ylim = c(-2.1,2.1),
xaxt = "n", boxwex=1.6, outline=F,
boxfill=rgb(1, 1, 1, alpha=1), border=rgb(1, 1, 1, alpha=1),
main="",ylab="")
grid(nx=15, ny=NA, lwd=0.5, lty = "dashed", col="darkgray")
abline(h=0, col="darkgray", lty = "dashed", lwd = 0.5)
abline(v=6, col="darkgray", lty = "solid", lwd = 2)
box_subset <- box_norm[which(results_430_2020$BES > 0),]
if (NROW(box_subset)>0) {
b1 <- boxplot(box_subset, plot=F)
b1$stats[3,] <- colMeans(box_subset)
b1$stats[2,] <- b1$stats[3,]- apply(box_subset, 2, sd)
b1$stats[4,] <- b1$stats[3,]+ apply(box_subset, 2, sd)
bxp(b1, at=1:ncol(box_norm)*2-1.4, xlim = c(1, ncol(box_norm)*2-1),
xaxt = "n", add = TRUE, boxfill=col2.2020, boxwex=0.25, whisklty = 0,
border=col1.2020, boxwex=0.5, outline=F, staplelty = 0)
}
box_norm <- scale(results_430_2050[,important_params,with=F], center = TRUE, scale = TRUE)
box_subset <- box_norm[which(results_430_2050$BES > 0),]
if (NROW(box_subset)>0) {
b2 <- boxplot(box_subset, plot=F)
b2$stats[3,] <- colMeans(box_subset)
b2$stats[2,] <- b2$stats[3,]- apply(box_subset, 2, sd)
b2$stats[4,] <- b2$stats[3,]+ apply(box_subset, 2, sd)
bxp(b2, at=1:ncol(box_norm)*2-1, xlim = c(1, ncol(box_norm)*2-1),
xaxt = "n", add = TRUE, boxfill=col2.2050, boxwex=0.25, whisklty = 0,
border=col1.2050, boxwex=0.5, outline=F, alpha=0.4, staplelty = 0)
}
box_norm <- scale(results_430_2100[,important_params,with=F], center = TRUE, scale = TRUE)
box_subset <- box_norm[which(results_430_2100$BES > 0),]
if (NROW(box_subset)>0) {
b3 <- boxplot(box_subset, plot=F)
b3$stats[3,] <- colMeans(box_subset)
b3$stats[2,] <- b3$stats[3,]- apply(box_subset, 2, sd)
b3$stats[4,] <- b3$stats[3,]+ apply(box_subset, 2, sd)
bxp(b3, at=1:ncol(box_norm)*2-0.6, xlim = c(1, ncol(box_norm)*2-1),
xaxt = "n", add = TRUE, boxfill=col2.2100, boxwex=0.25, whisklty = 0,
border=col1.2100, boxwex=0.5, outline=F, alpha=0.2, staplelty = 0)
}
text(0.6,1.98,"a", cex=1.6, font=2)
axis(1, at=1:ncol(box_norm)*2-1, labels = vector(mode="character", length=length(good_labels)), tick = TRUE, tcl=-0.2)
##########################################
# RCP 650 BES
##########################################
box_norm <- scale(results_650_2020[,important_params,with=F], center = TRUE, scale = TRUE)
b0 <- boxplot(box_norm, plot=F)
bxp(b0, at=1:ncol(box_norm)*2-1,
xlim = c(1, ncol(box_norm)*2-1), ylim = c(-2.1,2.1),
xaxt = "n", yaxt = "n", boxwex=1.6, outline=F,
boxfill=rgb(1, 1, 1, alpha=1), border=rgb(1, 1, 1, alpha=1),
main="",ylab="")
grid(nx=15, ny=NA, lwd=0.5, lty = "dashed", col="darkgray")
abline(h=0, col="darkgray", lty = "dashed", lwd = 0.5)
abline(v=6, col="darkgray", lty = "solid", lwd = 2)
box_subset <- box_norm[which(results_650_2020$BES > 0),]
if (NROW(box_subset)>0) {
b1 <- boxplot(box_subset, plot=F)
b1$stats[3,] <- colMeans(box_subset)
b1$stats[2,] <- b1$stats[3,]- apply(box_subset, 2, sd)
b1$stats[4,] <- b1$stats[3,]+ apply(box_subset, 2, sd)
bxp(b1, at=1:ncol(box_norm)*2-1.4, xlim = c(1, ncol(box_norm)*2-1),
xaxt = "n", yaxt = "n", add = TRUE, boxfill=col2.2020, boxwex=0.25, whisklty = 0,
border=col1.2020, boxwex=0.5, outline=F, staplelty = 0, boxlwd=0.1)
}
box_norm <- scale(results_650_2050[,important_params,with=F], center = TRUE, scale = TRUE)
box_subset <- box_norm[which(results_650_2050$BES > 0),]
if (NROW(box_subset)>0) {
b2 <- boxplot(box_subset, plot=F)
b2$stats[3,] <- colMeans(box_subset)
b2$stats[2,] <- b2$stats[3,]- apply(box_subset, 2, sd)
b2$stats[4,] <- b2$stats[3,]+ apply(box_subset, 2, sd)
bxp(b2, at=1:ncol(box_norm)*2-1, xlim = c(1, ncol(box_norm)*2-1),
xaxt = "n", yaxt = "n", add = TRUE, boxfill=col2.2050, boxwex=0.25, whisklty = 0,
border=col1.2050, boxwex=0.5, outline=F, alpha=0.4, staplelty = 0, boxlwd=0.1)
}
box_norm <- scale(results_650_2100[,important_params,with=F], center = TRUE, scale = TRUE)
box_subset <- box_norm[which(results_650_2100$BES > 0),]
if (NROW(box_subset)>0) {
b3 <- boxplot(box_subset, plot=F)
b3$stats[3,] <- colMeans(box_subset)
b3$stats[2,] <- b3$stats[3,]- apply(box_subset, 2, sd)
b3$stats[4,] <- b3$stats[3,]+ apply(box_subset, 2, sd)
bxp(b3, at=1:ncol(box_norm)*2-0.6, xlim = c(1, ncol(box_norm)*2-1),
xaxt = "n", yaxt = "n", add = TRUE, boxfill=col2.2100, boxwex=0.25, whisklty = 0,
border=col1.2100, boxwex=0.5, outline=F, alpha=0.2, staplelty = 0, boxlwd=0.1)
}
text(0.6,1.98,"d", cex=1.6, font=2)
axis(1, at=1:ncol(box_norm)*2-1, labels = vector(mode="character", length=length(good_labels)), tick = TRUE, tcl=-0.2)
##########################################
# RCP 430 BEBCS
##########################################
box_norm <- scale(results_430_2020[,important_params,with=F], center = TRUE, scale = TRUE)
good_labels <- improve_labels(colnames(box_norm))
for (i in 1:NROW(colnames(box_norm))){
good_labels[i] <- param.to.label(colnames(box_norm)[i])
}
b0 <- boxplot(box_norm, plot=F)
bxp(b0, at=1:ncol(box_norm)*2-1,
xlim = c(1, ncol(box_norm)*2-1), ylim = c(-2.1,2.1),
xaxt = "n", boxwex=1.6, outline=F,
boxfill=rgb(1, 1, 1, alpha=1), border=rgb(1, 1, 1, alpha=1),
main="",ylab="",tck=-.001)
grid(nx=15, ny=NA, lwd=0.5, lty = "dashed", col="darkgray")
abline(h=0, col="darkgray", lty = "dashed", lwd = 0.5)
abline(v=6, col="darkgray", lty = "solid", lwd = 2)
box_subset <- box_norm[which(results_430_2020$BEBCS > 0),]
if (NROW(box_subset)>0) {
b1 <- boxplot(box_subset, plot=F)
b1$stats[3,] <- colMeans(box_subset)
b1$stats[2,] <- b1$stats[3,]- apply(box_subset, 2, sd)
b1$stats[4,] <- b1$stats[3,]+ apply(box_subset, 2, sd)
bxp(b1, at=1:ncol(box_norm)*2-1.4, xlim = c(1, ncol(box_norm)*2-1),
xaxt = "n", add = TRUE, boxfill=col2.2020, boxwex=0.25, whisklty = 0,
border=col1.2020, boxwex=0.5, outline=F, staplelty = 0)
}
box_norm <- scale(results_430_2050[,important_params,with=F], center = TRUE, scale = TRUE)
box_subset <- box_norm[which(results_430_2050$BEBCS > 0),]
if (NROW(box_subset)>0) {
b2 <- boxplot(box_subset, plot=F)
b2$stats[3,] <- colMeans(box_subset)
b2$stats[2,] <- b2$stats[3,]- apply(box_subset, 2, sd)
b2$stats[4,] <- b2$stats[3,]+ apply(box_subset, 2, sd)
bxp(b2, at=1:ncol(box_norm)*2-1, xlim = c(1, ncol(box_norm)*2-1),
xaxt = "n", add = TRUE, boxfill=col2.2050, boxwex=0.25, whisklty = 0,
border=col1.2050, boxwex=0.5, outline=F, alpha=0.4, staplelty = 0)
}
box_norm <- scale(results_430_2100[,important_params,with=F], center = TRUE, scale = TRUE)
box_subset <- box_norm[which(results_430_2100$BEBCS > 0),]
if (NROW(box_subset)>0) {
b3 <- boxplot(box_subset, plot=F)
b3$stats[3,] <- colMeans(box_subset)
b3$stats[2,] <- b3$stats[3,]- apply(box_subset, 2, sd)
b3$stats[4,] <- b3$stats[3,]+ apply(box_subset, 2, sd)
bxp(b3, at=1:ncol(box_norm)*2-0.6, xlim = c(1, ncol(box_norm)*2-1),
xaxt = "n", add = TRUE, boxfill=col2.2100, boxwex=0.25, whisklty = 0,
border=col1.2100, boxwex=0.5, outline=F, alpha=0.2, staplelty = 0)
}
text(0.6,1.98,"b", cex=1.6, font=2)
axis(1, at=1:ncol(box_norm)*2-1, labels = vector(mode="character", length=length(good_labels)), tick = TRUE, tcl=-0.2)
##########################################
# RCP 650 BEBCS
##########################################
box_norm <- scale(results_650_2020[,important_params,with=F], center = TRUE, scale = TRUE)
good_labels <- improve_labels(colnames(box_norm))
for (i in 1:NROW(colnames(box_norm))){
good_labels[i] <- param.to.label(colnames(box_norm)[i])
}
b0 <- boxplot(box_norm, plot=F)
bxp(b0, at=1:ncol(box_norm)*2-1,
xlim = c(1, ncol(box_norm)*2-1), ylim = c(-2.1,2.1),
xaxt = "n", yaxt = "n", boxwex=1.6, outline=F,
boxfill=rgb(1, 1, 1, alpha=1), border=rgb(1, 1, 1, alpha=1),
main="",ylab="")
grid(nx=15, ny=NA, lwd=0.5, lty = "dashed", col="darkgray")
abline(h=0, col="darkgray", lty = "dashed", lwd = 0.5)
abline(v=6, col="darkgray", lty = "solid", lwd = 2)
box_subset <- box_norm[which(results_650_2020$BEBCS > 0),]
if (NROW(box_subset)>0) {
b1 <- boxplot(box_subset, plot=F)
b1$stats[3,] <- colMeans(box_subset)
b1$stats[2,] <- b1$stats[3,]- apply(box_subset, 2, sd)
b1$stats[4,] <- b1$stats[3,]+ apply(box_subset, 2, sd)
bxp(b1, at=1:ncol(box_norm)*2-1.4, xlim = c(1, ncol(box_norm)*2-1),
xaxt = "n", yaxt = "n", add = TRUE, boxfill=col2.2020, boxwex=0.25, whisklty = 0,
border=col1.2020, boxwex=0.5, outline=F, staplelty = 0)
}
box_norm <- scale(results_650_2050[,important_params,with=F], center = TRUE, scale = TRUE)
box_subset <- box_norm[which(results_650_2050$BEBCS > 0),]
if (NROW(box_subset)>0) {
b2 <- boxplot(box_subset, plot=F)
b2$stats[3,] <- colMeans(box_subset)
b2$stats[2,] <- b2$stats[3,]- apply(box_subset, 2, sd)
b2$stats[4,] <- b2$stats[3,]+ apply(box_subset, 2, sd)
bxp(b2, at=1:ncol(box_norm)*2-1, xlim = c(1, ncol(box_norm)*2-1),
xaxt = "n", yaxt = "n", add = TRUE, boxfill=col2.2050, boxwex=0.25, whisklty = 0,
border=col1.2050, boxwex=0.5, outline=F, alpha=0.4, staplelty = 0)
}
box_norm <- scale(results_650_2100[,important_params,with=F], center = TRUE, scale = TRUE)
box_subset <- box_norm[which(results_650_2100$BEBCS > 0),]
if (NROW(box_subset)>0) {
b3 <- boxplot(box_subset, plot=F)
b3$stats[3,] <- colMeans(box_subset)
b3$stats[2,] <- b3$stats[3,]- apply(box_subset, 2, sd)
b3$stats[4,] <- b3$stats[3,]+ apply(box_subset, 2, sd)
bxp(b3, at=1:ncol(box_norm)*2-0.6, xlim = c(1, ncol(box_norm)*2-1),
xaxt = "n", yaxt = "n", add = TRUE, boxfill=col2.2100, boxwex=0.25, whisklty = 0,
border=col1.2100, boxwex=0.5, outline=F, alpha=0.2, staplelty = 0)
}
text(0.6,1.98,"e", cex=1.6, font=2)
axis(1, at=1:ncol(box_norm)*2-1, labels = vector(mode="character", length=length(good_labels)), tick = TRUE, tcl=-0.2)
##########################################
# RCP 430 BECCS
##########################################
box_norm <- scale(results_430_2020[,important_params,with=F], center = TRUE, scale = TRUE)
b0 <- boxplot(box_norm, plot=F)
bxp(b0, at=1:ncol(box_norm)*2-1,
xlim = c(1, ncol(box_norm)*2-1), ylim = c(-2.1,2.1),
xaxt = "n", boxwex=1.6, outline=F,
boxfill=rgb(1, 1, 1, alpha=1), border=rgb(1, 1, 1, alpha=1),
main="",ylab="")
grid(nx=15, ny=NA, lwd=0.5, lty = "dashed", col="darkgray")
abline(h=0, col="darkgray", lty = "dashed", lwd = 0.5)
abline(v=6, col="darkgray", lty = "solid", lwd = 2)
box_subset <- box_norm[which(results_430_2020$BECCS > 0),]
if (NROW(box_subset)>0) {
b1 <- boxplot(box_subset, plot=F)
b1$stats[3,] <- colMeans(box_subset)
b1$stats[2,] <- b1$stats[3,]- apply(box_subset, 2, sd)
b1$stats[4,] <- b1$stats[3,]+ apply(box_subset, 2, sd)
bxp(b1, at=1:ncol(box_norm)*2-1.4, xlim = c(1, ncol(box_norm)*2-1),
xaxt = "n", add = TRUE, boxfill=col2.2020, boxwex=0.25, whisklty = 0,
border=col1.2020, boxwex=0.5, outline=F, staplelty = 0)
}
box_norm <- scale(results_430_2050[,important_params,with=F], center = TRUE, scale = TRUE)
box_subset <- box_norm[which(results_430_2050$BECCS > 0),]
if (NROW(box_subset)>0) {
b2 <- boxplot(box_subset, plot=F)
b2$stats[3,] <- colMeans(box_subset)
b2$stats[2,] <- b2$stats[3,]- apply(box_subset, 2, sd)
b2$stats[4,] <- b2$stats[3,]+ apply(box_subset, 2, sd)
bxp(b2, at=1:ncol(box_norm)*2-1, xlim = c(1, ncol(box_norm)*2-1),
xaxt = "n", add = TRUE, boxfill=col2.2050, boxwex=0.25, whisklty = 0,
border=col1.2050, boxwex=0.5, outline=F, alpha=0.4, staplelty = 0)
}
box_norm <- scale(results_430_2100[,important_params,with=F], center = TRUE, scale = TRUE)
box_subset <- box_norm[which(results_430_2100$BECCS > 0),]
if (NROW(box_subset)>0) {
b3 <- boxplot(box_subset, plot=F)
b3$stats[3,] <- colMeans(box_subset)
b3$stats[2,] <- b3$stats[3,]- apply(box_subset, 2, sd)
b3$stats[4,] <- b3$stats[3,]+ apply(box_subset, 2, sd)
bxp(b3, at=1:ncol(box_norm)*2-0.6, xlim = c(1, ncol(box_norm)*2-1),
xaxt = "n", add = TRUE, boxfill=col2.2100, boxwex=0.25, whisklty = 0,
border=col1.2100, boxwex=0.5, outline=F, alpha=0.2, staplelty = 0)
}
text(0.6,1.98,"c", cex=1.6, font=2)
axis(1, at=1:ncol(box_norm)*2-1, labels = vector(mode="character", length=length(good_labels)), tick = TRUE, tcl=-0.2)
text(1:ncol(box_norm)*2-0.7, -2.5, labels = good_labels, srt = 33, adj=c(1,0), xpd = NA, cex=1)
##########################################
# RCP 650 BECCS
##########################################
box_norm <- scale(results_650_2020[,important_params,with=F], center = TRUE, scale = TRUE)
b0 <- boxplot(box_norm, plot=F)
bxp(b0, at=1:ncol(box_norm)*2-1,
xlim = c(1, ncol(box_norm)*2-1), ylim = c(-2.1,2.1),
xaxt = "n", yaxt = "n", boxwex=1.6, outline=F,
boxfill=rgb(1, 1, 1, alpha=1), border=rgb(1, 1, 1, alpha=1),
main="",ylab="")
grid(nx=15, ny=NA, lwd=0.5, lty = "dashed", col="darkgray")
abline(h=0, col="darkgray", lty = "dashed", lwd = 0.5)
abline(v=6, col="darkgray", lty = "solid", lwd = 2)
box_subset <- box_norm[which(results_650_2020$BECCS > 0),]
if (NROW(box_subset)>0) {
b1 <- boxplot(box_subset, plot=F)
b1$stats[3,] <- colMeans(box_subset)
b1$stats[2,] <- b1$stats[3,]- apply(box_subset, 2, sd)
b1$stats[4,] <- b1$stats[3,]+ apply(box_subset, 2, sd)
bxp(b1, at=1:ncol(box_norm)*2-1.4, xlim = c(1, ncol(box_norm)*2-1),
xaxt = "n", yaxt = "n", add = TRUE, boxfill=col2.2020, boxwex=0.25, whisklty = 0,
border=col1.2020, boxwex=0.5, outline=F, staplelty = 0)
}
box_norm <- scale(results_650_2050[,important_params,with=F], center = TRUE, scale = TRUE)
box_subset <- box_norm[which(results_650_2050$BECCS > 0),]
if (NROW(box_subset)>0) {
b2 <- boxplot(box_subset, plot=F)
b2$stats[3,] <- colMeans(box_subset)
b2$stats[2,] <- b2$stats[3,]- apply(box_subset, 2, sd)
b2$stats[4,] <- b2$stats[3,]+ apply(box_subset, 2, sd)
bxp(b2, at=1:ncol(box_norm)*2-1, xlim = c(1, ncol(box_norm)*2-1),
xaxt = "n", yaxt = "n", add = TRUE, boxfill=col2.2050, boxwex=0.25, whisklty = 0,
border=col1.2050, boxwex=0.5, outline=F, alpha=0.4, staplelty = 0)
}
box_norm <- scale(results_650_2100[,important_params,with=F], center = TRUE, scale = TRUE)
box_subset <- box_norm[which(results_650_2100$BECCS > 0),]
if (NROW(box_subset)>0) {
b3 <- boxplot(box_subset, plot=F)
b3$stats[3,] <- colMeans(box_subset)
b3$stats[2,] <- b3$stats[3,]- apply(box_subset, 2, sd)
b3$stats[4,] <- b3$stats[3,]+ apply(box_subset, 2, sd)
bxp(b3, at=1:ncol(box_norm)*2-0.6, xlim = c(1, ncol(box_norm)*2-1),
xaxt = "n", yaxt = "n", add = TRUE, boxfill=col2.2100, boxwex=0.25, whisklty = 0,
border=col1.2100, boxwex=0.5, outline=F, alpha=0.2, staplelty = 0)
}
text(0.6,1.98,"f", cex=1.6, font=2)
axis(1, at=1:ncol(box_norm)*2-1, labels = vector(mode="character", length=length(good_labels)), tick = TRUE, tcl=-0.2)
text(1:ncol(box_norm)*2-0.7, -2.5, labels = good_labels, srt = 33, adj=c(1,0), xpd = NA, cex=1)
mtext("Standardized Value (standard deviations)", side=2, outer = TRUE, cex = 1, line = 2.2, las=0)
mtext("MS430-480", side=3, outer = TRUE, cex = 1, line = 2.2, las=0, at=0.25)
mtext("MS650-720", side=3, outer = TRUE, cex = 1, line = 2.2, las=0, at=0.75)
mtext("BES", side=4, outer = TRUE, cex = 1, line = 1, las=0, at=0.82)
mtext("BEBCS", side=4, outer = TRUE, cex = 1, line = 1, las=0, at=0.5)
mtext("BECCS", side=4, outer = TRUE, cex = 1, line = 1, las=0, at=0.18)
rect(-11, 11.64, -7, 11.76, col = col2.2020, border = col1.2020, xpd=NA)
rect(-2, 11.64, 2, 11.76, col = col2.2050, border = col1.2050, xpd=NA)
rect(7, 11.64, 11, 11.76, col = col2.2100, border = col1.2100, xpd=NA)
mtext("2020", at=0.411, side=3, outer = TRUE, las=1, line = 0.63, cex=0.7)
mtext("2050", at=0.561, side=3, outer = TRUE, las=1, line = 0.63, cex=0.7)
mtext("2100", at=0.711, side=3, outer = TRUE, las=1, line = 0.63, cex=0.7)
dev.off()