@@ -25,22 +25,23 @@ document.addEventListener('DOMContentLoaded', function() {
25
25
const algorithmSelect = document . getElementById ( 'algorithm-select' ) ;
26
26
algorithmSelect . addEventListener ( 'change' , function ( event ) {
27
27
selectedAlgorithm = event . target . value ;
28
+ updateRange ( '2' )
28
29
drawBoxPlot ( data , selectedAlgorithm , selectedSNR , selectedType , selectedRange ) ;
29
30
} ) ;
30
31
31
32
// Add event listener to SNR select
32
33
const snrSelect = document . getElementById ( 'snr-select' ) ;
33
34
snrSelect . addEventListener ( 'change' , function ( event ) {
34
35
selectedSNR = event . target . value ;
36
+ updateRange ( '2' )
35
37
drawBoxPlot ( data , selectedAlgorithm , selectedSNR , selectedType , selectedRange ) ;
36
38
} ) ;
37
39
38
-
39
-
40
40
// Add event listener to type select
41
41
const typeSelect = document . getElementById ( 'type-select' ) ;
42
42
typeSelect . addEventListener ( 'change' , function ( event ) {
43
43
selectedType = event . target . value ;
44
+ updateRange ( '2' )
44
45
drawBoxPlot ( data , selectedAlgorithm , selectedSNR , selectedType , selectedRange ) ;
45
46
} ) ;
46
47
@@ -49,10 +50,10 @@ document.addEventListener('DOMContentLoaded', function() {
49
50
const rangeValue = document . getElementById ( 'range-value' ) ;
50
51
const decrementRange = document . getElementById ( 'decrement-range' ) ;
51
52
const incrementRange = document . getElementById ( 'increment-range' ) ;
52
-
53
53
function updateRange ( value ) {
54
54
selectedRange = value ;
55
55
rangeValue . textContent = value ;
56
+ rangeSlider . value = value
56
57
drawBoxPlot ( data , selectedAlgorithm , selectedSNR , selectedType , selectedRange ) ;
57
58
}
58
59
@@ -70,7 +71,7 @@ document.addEventListener('DOMContentLoaded', function() {
70
71
71
72
incrementRange . addEventListener ( 'click' , function ( ) {
72
73
let newValue = parseInt ( rangeSlider . value ) + 2 ;
73
- if ( newValue <= 100 ) {
74
+ if ( newValue <= rangeSlider . max ) {
74
75
rangeSlider . value = newValue ;
75
76
updateRange ( newValue ) ;
76
77
}
@@ -80,53 +81,59 @@ document.addEventListener('DOMContentLoaded', function() {
80
81
const regionSelect = document . getElementById ( 'region-select' ) ;
81
82
regionSelect . addEventListener ( 'change' , function ( event ) {
82
83
selectedRegion = event . target . value ;
83
- drawRegionBoxPlot ( data , selectedRegion , selectedSNR , selectedType , selectedRange ) ;
84
+ updateRangeRegion ( '2' )
85
+ drawRegionBoxPlot ( data , selectedRegion , selectedSNRRegion , selectedTypeRegion , selectedRangeRegion ) ;
84
86
} ) ;
85
- // Add event listener to SNR select
86
- const snrRegionSelect = document . getElementById ( 'snr-region-select' ) ;
87
- snrRegionSelect . addEventListener ( 'change' , function ( event ) {
88
- selectedSNRRegion = event . target . value ;
89
- drawRegionBoxPlot ( data , selectedRegion , selectedSNRRegion , selectedTypeRegion , selectedRangeRegion ) ;
90
- } ) ;
91
-
92
- // Add event listener to type select
93
- const typeRegionSelect = document . getElementById ( 'type-region-select' ) ;
94
- typeRegionSelect . addEventListener ( 'change' , function ( event ) {
95
- selectedTypeRegion = event . target . value ;
96
- drawRegionBoxPlot ( data , selectedRegion , selectedSNRRegion , selectedTypeRegion , selectedRangeRegion ) ;
97
- } ) ;
98
-
99
- // Add event listeners to range region slider and buttons
100
- const rangeSliderRegion = document . getElementById ( 'range-slider-region' ) ;
101
- const rangeValueRegion = document . getElementById ( 'range-value-region' ) ;
102
- const decrementRangeRegion = document . getElementById ( 'decrement-range-region' ) ;
103
- const incrementRangeRegion = document . getElementById ( 'increment-range-region' ) ;
104
-
105
- function updateRangeRegion ( value ) {
106
- selectedRangeRegion = value ;
107
- rangeValueRegion . textContent = value ;
108
- drawRegionBoxPlot ( data , selectedRegion , selectedSNRRegion , selectedTypeRegion , selectedRangeRegion ) ;
109
- }
110
87
111
- rangeSliderRegion . addEventListener ( 'input' , function ( event ) {
112
- updateRangeRegion ( event . target . value ) ;
113
- } ) ;
88
+ // Add event listener to SNR select
89
+ const snrRegionSelect = document . getElementById ( 'snr-region-select' ) ;
90
+ snrRegionSelect . addEventListener ( 'change' , function ( event ) {
91
+ selectedSNRRegion = event . target . value ;
92
+ updateRangeRegion ( '2' )
93
+ drawRegionBoxPlot ( data , selectedRegion , selectedSNRRegion , selectedTypeRegion , selectedRangeRegion ) ;
94
+ } ) ;
114
95
115
- decrementRangeRegion . addEventListener ( 'click' , function ( ) {
116
- let newValue = parseInt ( rangeSliderRegion . value ) - 2 ;
117
- if ( newValue >= 2 ) {
118
- rangeSliderRegion . value = newValue ;
119
- updateRangeRegion ( newValue ) ;
120
- }
121
- } ) ;
96
+ // Add event listener to type select
97
+ const typeRegionSelect = document . getElementById ( 'type-region-select' ) ;
98
+ typeRegionSelect . addEventListener ( 'change' , function ( event ) {
99
+ selectedTypeRegion = event . target . value ;
100
+ updateRangeRegion ( '2' )
101
+ drawRegionBoxPlot ( data , selectedRegion , selectedSNRRegion , selectedTypeRegion , selectedRangeRegion ) ;
102
+ } ) ;
103
+
104
+ // Add event listeners to range region slider and buttons
105
+ const rangeSliderRegion = document . getElementById ( 'range-slider-region' ) ;
106
+ const rangeValueRegion = document . getElementById ( 'range-value-region' ) ;
107
+ const decrementRangeRegion = document . getElementById ( 'decrement-range-region' ) ;
108
+ const incrementRangeRegion = document . getElementById ( 'increment-range-region' ) ;
109
+
110
+ function updateRangeRegion ( value ) {
111
+ selectedRangeRegion = value ;
112
+ rangeValueRegion . textContent = value ;
113
+ rangeSliderRegion . value = value
114
+ drawRegionBoxPlot ( data , selectedRegion , selectedSNRRegion , selectedTypeRegion , selectedRangeRegion ) ;
115
+ }
116
+
117
+ rangeSliderRegion . addEventListener ( 'input' , function ( event ) {
118
+ updateRangeRegion ( event . target . value ) ;
119
+ } ) ;
120
+
121
+ decrementRangeRegion . addEventListener ( 'click' , function ( ) {
122
+ let newValue = parseInt ( rangeSliderRegion . value ) - 2 ;
123
+ if ( newValue >= 2 ) {
124
+ rangeSliderRegion . value = newValue ;
125
+ updateRangeRegion ( newValue ) ;
126
+ }
127
+ } ) ;
122
128
123
129
incrementRangeRegion . addEventListener ( 'click' , function ( ) {
124
130
let newValue = parseInt ( rangeSliderRegion . value ) + 2 ;
125
- if ( newValue <= 100 ) {
131
+ if ( newValue <= rangeSliderRegion . max ) {
126
132
rangeSliderRegion . value = newValue ;
127
133
updateRangeRegion ( newValue ) ;
128
134
}
129
135
} ) ;
136
+
130
137
showLoading ( ) ;
131
138
132
139
Papa . parse ( 'test_output.csv' , {
@@ -194,6 +201,17 @@ document.addEventListener('DOMContentLoaded', function() {
194
201
"Dp_fitted" : "Perfusion" ,
195
202
"f_fitted" : "Perfusion Fraction"
196
203
} ;
204
+
205
+ const allD_fittedValues = jsonData
206
+ . filter ( obj => obj . SNR === selectedSNR )
207
+ . map ( obj => obj [ selectedType ] ) ;
208
+
209
+ const maxValue = Math . max ( ...allD_fittedValues . map ( Math . abs ) ) ;
210
+ const groundTruthList = jsonData
211
+ . filter ( obj => obj . SNR === selectedSNR )
212
+ . map ( obj => obj [ selectedType . slice ( 0 , - 7 ) ] ) ;
213
+ let estimatedRange = Math . abs ( maxValue ) / Math . min ( ...groundTruthList )
214
+ rangeSlider . max = Math . round ( estimatedRange / 2 ) * 2
197
215
let plots = [ ] ;
198
216
const regions = new Set ( jsonData . map ( obj => obj . Region ) ) ;
199
217
const uniqueRegionsArray = Array . from ( regions ) ;
@@ -208,7 +226,7 @@ document.addEventListener('DOMContentLoaded', function() {
208
226
type : 'box' ,
209
227
name : region ,
210
228
marker : {
211
- outliercolor : 'white) ' ,
229
+ outliercolor : 'white' ,
212
230
} ,
213
231
boxpoints : 'Outliers'
214
232
} ;
@@ -221,12 +239,12 @@ document.addEventListener('DOMContentLoaded', function() {
221
239
x : [ region ] ,
222
240
y : groundTruth ,
223
241
type : 'scatter' ,
242
+ name : region + ' ground truth' ,
224
243
mode : 'markers' ,
225
244
marker : {
226
245
color : 'black' ,
227
246
size : 10
228
247
} ,
229
- showlegend : false
230
248
} ;
231
249
plots . push ( constantPoint ) ;
232
250
} ) ;
@@ -245,6 +263,18 @@ document.addEventListener('DOMContentLoaded', function() {
245
263
"Dp_fitted" : "Perfusion" ,
246
264
"f_fitted" : "Perfusion Fraction"
247
265
} ;
266
+
267
+ const allD_fittedValues = jsonData
268
+ . filter ( obj => obj . SNR === selectedSNR )
269
+ . map ( obj => obj [ selectedType ] ) ;
270
+
271
+ const maxValue = Math . max ( ...allD_fittedValues . map ( Math . abs ) ) ;
272
+ const groundTruthList = jsonData
273
+ . filter ( obj => obj . SNR === selectedSNR )
274
+ . map ( obj => obj [ selectedType . slice ( 0 , - 7 ) ] ) ;
275
+ let estimatedRange = Math . abs ( maxValue ) / Math . min ( ...groundTruthList )
276
+ rangeSliderRegion . max = Math . round ( estimatedRange / 2 ) * 2
277
+
248
278
let plots = [ ] ;
249
279
const algorithms = new Set ( jsonData . map ( obj => obj . Algorithm ) ) ;
250
280
const uniqueAlgorithmsArray = Array . from ( algorithms ) ;
@@ -272,12 +302,12 @@ document.addEventListener('DOMContentLoaded', function() {
272
302
x : [ algorithm ] ,
273
303
y : groundTruth ,
274
304
type : 'scatter' ,
305
+ name : algorithm + ' ground truth' ,
275
306
mode : 'markers' ,
276
307
marker : {
277
308
color : 'black' ,
278
309
size : 10
279
310
} ,
280
- showlegend : false
281
311
} ;
282
312
plots . push ( constantPoint ) ;
283
313
} ) ;
0 commit comments