diff --git a/README.md b/README.md index 869e8ce49..a1336f4e0 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,10 @@ # StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics + [![Codacy Badge](https://app.codacy.com/project/badge/Grade/715aec02557a47cdb42562ebb6c4d5fe)](https://www.codacy.com/gh/angeloschatzimparmpas/StackGenVis/dashboard?utm_source=github.com&utm_medium=referral&utm_content=angeloschatzimparmpas/StackGenVis&utm_campaign=Badge_Grade) This Git repository contains the code that accompanies the research paper "StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics". The details of the experiments and the research outcome are described in [the paper](https://doi.org/10.1109/TVCG.2020.3030352). -**Note:** StackGenVis is optimized to work better for standard resolutions (such as 1440p/QHD (Quad High Definition)). Any other resolution might need manual adjustment of your browser's zoom level to work properly. +**Note:** StackGenVis is optimized to work better for standard resolutions (such as 1440p/QHD (Quad High Definition) and 1080p). For lower resolutions, our recommendation is to use the collapsible functionality of the top dark gray panels. Finally, any other resolution might need manual adjustment of your browser's zoom level to work properly. **Note:** The tag `paper-version` matches the implementation at the time of the paper's publication. The current version might look significantly different depending on how much time has passed since then. diff --git a/frontend/src/components/Algorithms.vue b/frontend/src/components/Algorithms.vue index 3759f75f1..cb7a84d07 100644 --- a/frontend/src/components/Algorithms.vue +++ b/frontend/src/components/Algorithms.vue @@ -1,6 +1,6 @@ @@ -342,7 +342,7 @@ export default { // label : displayed text in toolbox this.chart = exploding_boxplot(data, {y:'# Performance (%) #',group:'Algorithm',color:'Algorithm',label:'Model'}) this.chart.width(this.WH[0]*10.225) // interactive visualization - this.chart.height(this.WH[1]*0.95) // interactive visualization + this.chart.height(this.WH[1]*0.72) // interactive visualization //call chart on a div this.chart('#exploding_boxplot') @@ -1073,7 +1073,7 @@ export default { $(el)[8].dispatchEvent(new Event('click')) } else if (this.selectedAlgorithm == 'AdaB') { $(el)[9].dispatchEvent(new Event('click')) - } else { + } else if (this.selectedAlgorithm == 'GradB') { $(el)[10].dispatchEvent(new Event('click')) } } @@ -1093,8 +1093,8 @@ export default { this.WH = data}) EventBus.$on('ResponsiveandChange', data => { this.WH = data}) - EventBus.$on('ResponsiveandChange', this.boxplot) EventBus.$on('ResponsiveandChange', this.previousBoxPlotState) + EventBus.$on('ResponsiveandChange', this.brushed) EventBus.$on('emittedEventCallingSelectedALgorithm', data => { this.selectedAlgorithm = data}) EventBus.$on('brusheAllOn', this.brushActivationAll) diff --git a/frontend/src/components/BalancePredictions.vue b/frontend/src/components/BalancePredictions.vue index c4aa0089c..c6d1d2dfc 100644 --- a/frontend/src/components/BalancePredictions.vue +++ b/frontend/src/components/BalancePredictions.vue @@ -18,7 +18,8 @@ return { resultsfromOverview: '', newResultsFromSelection: '', - responsiveWidthHeight: [] + responsiveWidthHeight: [], + smallScreenMode: '0px', } }, methods: { @@ -31,9 +32,17 @@ var svg = d3.select("#my_dataviz"); svg.selectAll("*").remove(); - // responsive visualizations - var widthInitial = this.responsiveWidthHeight[0]*6.5 - var heightInitial = this.responsiveWidthHeight[1]*0.5 + if (this.smallScreenMode != "370px") { + var widthInitial = this.responsiveWidthHeight[0]*6.5 + var heightInitial = this.responsiveWidthHeight[1]*0.5 + var heightforText = 215 + var widthforText = 215 + } else { + var widthInitial = this.responsiveWidthHeight[0]*6.8 + var heightInitial = this.responsiveWidthHeight[1]*0.395 + var heightforText = 202 + var widthforText = 20 + } var performancePerModel = JSON.parse(this.resultsfromOverview[0]) var performancePerModelSelection = [] @@ -186,12 +195,11 @@ // Handmade legend - var heightforText = 215 - svg.append("circle").attr("cx", 215).attr("cy", heightforText-1.5).attr("r", 6).style("fill", "#000") - svg.append("circle").attr("cx", 785).attr("cy", heightforText-1.5).attr("r", 6).style("fill", "#D3D3D3") - svg.append("text").attr("x", 230).attr("y", heightforText).text("All Points").style("font-size", "16px").attr("alignment-baseline","middle") - svg.append("text").attr("x", 515).attr("y", heightforText-6).text("# Performance (%) #").style("font-size", "16px").attr("alignment-baseline","top") - svg.append("text").attr("x", 800).attr("y", heightforText).text("Selected Points").style("font-size", "16px").attr("alignment-baseline","middle") + svg.append("circle").attr("cx", widthforText).attr("cy", heightforText-1.5).attr("r", 6).style("fill", "#000") + svg.append("circle").attr("cx", widthforText+570).attr("cy", heightforText-1.5).attr("r", 6).style("fill", "#D3D3D3") + svg.append("text").attr("x", widthforText+15).attr("y", heightforText).text("All Points").style("font-size", "16px").attr("alignment-baseline","middle") + svg.append("text").attr("x", widthforText+275).attr("y", heightforText-6).text("# Performance (%) #").style("font-size", "16px").attr("alignment-baseline","top") + svg.append("text").attr("x", widthforText+585).attr("y", heightforText).text("Selected Points").style("font-size", "16px").attr("alignment-baseline","middle") svg.append("text").attr("transform", "rotate(-90)").attr("x", -89).attr("y", -45).style("text-anchor", "middle").style("font-size", "16px").text("Number of Models"); // Function to compute density @@ -216,8 +224,7 @@ EventBus.$on('UpdateBalanceView', this.Balance) EventBus.$on('Responsive', data => { this.responsiveWidthHeight = data}) - EventBus.$on('ResponsiveandChange', data => { - this.responsiveWidthHeight = data}) + EventBus.$on('ResponsiveandAdapt', data => { this.smallScreenMode = data }) // reset view EventBus.$on('resetViews', this.reset) diff --git a/frontend/src/components/BarChart.vue b/frontend/src/components/BarChart.vue index 6fc3e8d1c..36c0ca031 100644 --- a/frontend/src/components/BarChart.vue +++ b/frontend/src/components/BarChart.vue @@ -409,7 +409,7 @@ export default { autosize: true, barmode: 'group', width: this.WH[0]*10.205, - height: this.WH[1]*0.6, + height: this.WH[1]*0.61, xaxis: { title: 'Algorithm', type:"category", @@ -585,6 +585,7 @@ export default { EventBus.$on('Responsive', data => { this.WH = data}) + EventBus.$on('ResponsiveandChange', data => { this.WH = data}) diff --git a/frontend/src/components/DataSetExecController.vue b/frontend/src/components/DataSetExecController.vue index b2abc41a7..d81dc643e 100644 --- a/frontend/src/components/DataSetExecController.vue +++ b/frontend/src/components/DataSetExecController.vue @@ -4,8 +4,8 @@ -    +   
History Manager: