From 4ddeadf88a8b9a8643efe9d4b7ffdafccbd17c14 Mon Sep 17 00:00:00 2001 From: Maya Gans Date: Sun, 24 Jan 2021 19:19:14 -0800 Subject: [PATCH 1/2] reorder numeric columns --- forestplot.js | 49 ++++++++++++++++++++++++++++++---- src/draw/draw.js | 41 ++++++++++++++++++++++++++-- src/draw/makeFilterControls.js | 5 ++-- 3 files changed, 86 insertions(+), 9 deletions(-) diff --git a/forestplot.js b/forestplot.js index 90690d9..a207079 100644 --- a/forestplot.js +++ b/forestplot.js @@ -396,7 +396,7 @@ .y(function(d) { return d.y; }) - .interpolate('linear-closed') + .interpolate('linear-closed'); diffPoints .append('svg:path') @@ -532,10 +532,20 @@ .call(testAxis); } + function range(start, end) { + return Array(end - start + 1) + .fill() + .map(function(_, idx) { + return start + idx; + }); + } + function draw() { var chart = this; chart.anly.forEach(function(testData, i) { + console.log('maya'); + console.log(chart.config); testData.wrap = chart.wrap .append('div') .attr('class', 'tableWrap') @@ -553,14 +563,42 @@ paging: false, order: [[2, 'desc']], columnDefs: [ - { width: '120px', targets: 2 + chart.config.groups.length }, + { + width: '120px', + targets: 2 + chart.config.groups.length + }, { width: '300px', targets: 2 + chart.config.groups.length + 1 + chart.config.pairs.length + }, + { + targets: range( + 2 + chart.config.groups.length + 1, + 2 + chart.config.groups.length + 1 + chart.config.pairs.length - 1 + ), + render: function render(data, type, row) { + if (type === 'sort') { + var sortValue = data; + switch (data) { + case NaN: + sortValue = -999997; + break; + case 'NaN': + sortValue = -999998; + break; + case '-': + sortValue = -999999; + break; + } + return sortValue; + } else { + return data; + } + } } ] }) - .columns.adjust() + //.columns.adjust() .draw(); }); } @@ -810,16 +848,17 @@ // let incidence_flag = // (incidence_max >= chart.config.incidenceFilter[0]) & // (incidence_max <= chart.config.incidenceFilter[1]); - // let comp_vals = data.filter(function(d, i) { + // // 2 + 3 + 1 = 6? // let first_comp = 2 + config.groups.length + 1; + // // 5 + 3 = 8 ? // let last_comp = first_comp + config.pairs.length; + // console.log((i >= first_comp) & (i < last_comp)); // return (i >= first_comp) & (i < last_comp); // }); // let comp_max = d3.max(comp_vals, d => (d == '-' ? 0 : +d)); // let comp_flag = // (comp_max >= chart.config.compFilter[0]) & (comp_max <= chart.config.compFilter[1]); - // return comp_flag & incidence_flag; // }); } diff --git a/src/draw/draw.js b/src/draw/draw.js index 9af038a..0f5282c 100644 --- a/src/draw/draw.js +++ b/src/draw/draw.js @@ -1,10 +1,18 @@ import makeBody from './makeBody'; import makeHeader from './makeHeader'; +function range(start, end) { + return Array(end - start + 1) + .fill() + .map((_, idx) => start + idx); +} + export function draw() { let chart = this; chart.anly.forEach(function(testData, i) { + console.log('maya'); + console.log(chart.config); testData.wrap = chart.wrap .append('div') .attr('class', 'tableWrap') @@ -20,14 +28,43 @@ export function draw() { paging: false, order: [[2, 'desc']], columnDefs: [ - { width: '120px', targets: 2 + chart.config.groups.length }, + { + width: '120px', + targets: 2 + chart.config.groups.length + }, { width: '300px', targets: 2 + chart.config.groups.length + 1 + chart.config.pairs.length + }, + { + targets: range( + 2 + chart.config.groups.length + 1, + 2 + chart.config.groups.length + 1 + chart.config.pairs.length - 1 + ), + render: function(data, type, row) { + if (type === 'sort') { + var sortValue = data; + switch (data) { + case NaN: + sortValue = -999997; + break; + case 'NaN': + sortValue = -999998; + break; + case '-': + sortValue = -999999; + break; + default: + } + return sortValue; + } else { + return data; + } + } } ] }) - .columns.adjust() + //.columns.adjust() .draw(); }); } diff --git a/src/draw/makeFilterControls.js b/src/draw/makeFilterControls.js index 89be13a..2a5c6e1 100644 --- a/src/draw/makeFilterControls.js +++ b/src/draw/makeFilterControls.js @@ -65,16 +65,17 @@ export default function makeFilterControls(testData) { // let incidence_flag = // (incidence_max >= chart.config.incidenceFilter[0]) & // (incidence_max <= chart.config.incidenceFilter[1]); - // let comp_vals = data.filter(function(d, i) { + // // 2 + 3 + 1 = 6? // let first_comp = 2 + config.groups.length + 1; + // // 5 + 3 = 8 ? // let last_comp = first_comp + config.pairs.length; + // console.log((i >= first_comp) & (i < last_comp)); // return (i >= first_comp) & (i < last_comp); // }); // let comp_max = d3.max(comp_vals, d => (d == '-' ? 0 : +d)); // let comp_flag = // (comp_max >= chart.config.compFilter[0]) & (comp_max <= chart.config.compFilter[1]); - // return comp_flag & incidence_flag; // }); } From ed14194b8b5a1e1c17f9939da875e2abab733218 Mon Sep 17 00:00:00 2001 From: Maya Gans Date: Sun, 24 Jan 2021 19:21:10 -0800 Subject: [PATCH 2/2] remove console log --- src/draw/draw.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/draw/draw.js b/src/draw/draw.js index 0f5282c..b8e42a3 100644 --- a/src/draw/draw.js +++ b/src/draw/draw.js @@ -11,8 +11,6 @@ export function draw() { let chart = this; chart.anly.forEach(function(testData, i) { - console.log('maya'); - console.log(chart.config); testData.wrap = chart.wrap .append('div') .attr('class', 'tableWrap')