From b71254dc56f9551ae0e302e6d1c0bec191a8d954 Mon Sep 17 00:00:00 2001 From: bbod Date: Sun, 22 Sep 2019 22:47:18 -0600 Subject: [PATCH] Hw3 start. --- hw2 2.zip | Bin 0 -> 10777 bytes hw2.zip | Bin 0 -> 10645 bytes hw2/.idea/workspace.xml | 104 +- hw3/d3.js | 17847 ++++++++++++++++++++++++++++++++++++ hw3/data/anscombe_I.csv | 12 + hw3/data/anscombe_II.csv | 12 + hw3/data/anscombe_III.csv | 12 + hw3/data/anscombe_IV.csv | 12 + hw3/hw3.html | 173 + hw3/script.js | 99 + 10 files changed, 18216 insertions(+), 55 deletions(-) create mode 100644 hw2 2.zip create mode 100644 hw2.zip create mode 100644 hw3/d3.js create mode 100755 hw3/data/anscombe_I.csv create mode 100755 hw3/data/anscombe_II.csv create mode 100755 hw3/data/anscombe_III.csv create mode 100755 hw3/data/anscombe_IV.csv create mode 100644 hw3/hw3.html create mode 100644 hw3/script.js diff --git a/hw2 2.zip b/hw2 2.zip new file mode 100644 index 0000000000000000000000000000000000000000..01035236a18935ec85537017f2dcf68d86a7cc8a GIT binary patch literal 10777 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 pLx%A6ipx(05yC&)k;{_=wiza`yc))J=XvL literal 0 HcmV?d00001 diff --git a/hw2.zip b/hw2.zip new file mode 100644 index 0000000000000000000000000000000000000000..db1573178b56f5d25a40ddab59b56b2943774bb1 GIT binary patch literal 10645 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 s_q#9pyK2z88a9M4SKJyJm=ONej= - - - - - - - - - + @@ -25,11 +17,12 @@ - + + - + @@ -68,7 +61,7 @@ - + @@ -76,8 +69,8 @@ - - + + @@ -85,8 +78,8 @@ - - + + @@ -94,7 +87,7 @@ - + @@ -139,6 +132,17 @@ + + + + + + + + + - - - - - - - - - + + + + + + + + + Random Subset + + +
+ +
+

Bar Charts

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Line Charts

+ + + + + + + + + + + + +
+ +
+

Area Charts

+ + + + + + + + + + + + +
+ +
+

Scatterplot

+ + + + + + + + + + + + + + + + + +
+ + diff --git a/hw3/script.js b/hw3/script.js new file mode 100644 index 0000000..9c83e8a --- /dev/null +++ b/hw3/script.js @@ -0,0 +1,99 @@ +/** + * Makes the first bar chart appear as a staircase. + * + * Note: use only the DOM API, not D3! + */ +function staircase() { + // ****** TODO: PART II ****** +} + +/** + * Render the visualizations + * @param error + * @param data + */ +function update(data) { + // Set up the scales + let aScale = d3.scaleLinear() + .domain([0, d3.max(data, d => d.a)]) + .range([0, 150]); + let bScale = d3.scaleLinear() + .domain([0, d3.max(data, d => d.b)]) + .range([0, 150]); + let iScale = d3.scaleLinear() + .domain([0, data.length]) + .range([0, 110]); + + + // ****** TODO: PART III (you will also edit in PART V) ****** + + // TODO: Select and update the 'a' bar chart bars + + // TODO: Select and update the 'b' bar chart bars + + // TODO: Select and update the 'a' line chart path using this line generator + + let aLineGenerator = d3.line() + .x((d, i) => iScale(i)) + .y((d) => aScale(d.a)); + + // TODO: Select and update the 'b' line chart path (create your own generator) + + // TODO: Select and update the 'a' area chart path using this area generator + let aAreaGenerator = d3.area() + .x((d, i) => iScale(i)) + .y0(0) + .y1(d => aScale(d.a)); + + // TODO: Select and update the 'b' area chart path (create your own generator) + + // TODO: Select and update the scatterplot points + + // ****** TODO: PART IV ****** + +} + +/** + * Load the file indicated by the select menu + */ +function changeData() { + let dataFile = document.getElementById('dataset').value; + if (document.getElementById('random').checked) { + randomSubset(); + } + else { + let filename = './data/' + dataFile + '.csv'; + dataset = d3.csv(filename, function(d) { + // Convert each data item to a number. + return { a:+d.a, b:+d.b }; + }) + // After reading the entire dataset, call update(). + .then(update); + } +} + +/** + * Load the file indicated by the select menu, and then slice out a random chunk before passing the data to update() + */ +function randomSubset() { + let dataFile = document.getElementById('dataset').value; + if (document.getElementById('random').checked) { + let filename = './data/' + dataFile + '.csv'; + dataset = d3.csv(filename, function(d) { + // Convert each data item to a number. + return { a:+d.a, b:+d.b }; + }) + .then(function(data) { + let subset = []; + for (let d of data) { + if (Math.random() > 0.5) { + subset.push(d); + } + } + update(subset); + }); + } + else { + changeData(); + } +}