diff --git a/Day1Exercise/Q2/dataset.csv b/Day1Exercise/Q2/dataset.csv
new file mode 100644
index 0000000..55cfc52
--- /dev/null
+++ b/Day1Exercise/Q2/dataset.csv
@@ -0,0 +1,6 @@
+x,y
+21,15
+20,20
+5,20
+7,4
+22,6
\ No newline at end of file
diff --git a/Day1Exercise/Q2/scatter.html b/Day1Exercise/Q2/scatter.html
index 682c103..8c9f53a 100644
--- a/Day1Exercise/Q2/scatter.html
+++ b/Day1Exercise/Q2/scatter.html
@@ -5,7 +5,7 @@
Scatter Plot
-
+
diff --git a/Day1Exercise/Q2/scatterPlot.js b/Day1Exercise/Q2/scatterPlot.js
index ffc0fb9..795d255 100644
--- a/Day1Exercise/Q2/scatterPlot.js
+++ b/Day1Exercise/Q2/scatterPlot.js
@@ -1,18 +1,47 @@
function myScatterPlot() {
var dataset = [[10, 15], [20, 20], [5, 20], [7, 4], [22, 6]];
+ console.log("entering...");
+ //debugger;
+ d3.csv("./dataset.csv", function(error, data) {
+
+ console.log("callback...")
+ if (error)
+ {
+ console.log("callback error...")
+ throw error;
+ }
+
+ var i=0;
+ data.forEach(d => {
+ d.x = +d.x;
+ d.y = +d.y;
+ //
+ dataset[i][0] = d.x;
+ dataset[i][1] = d.y;
+ i++;
+ });
+
+ });
+
+ // ?? why never plot using update csv data???
+ console.log(dataset);
+
+ // constants
const WIDTH = 600;
const HEIGHT = 600;
const PADDING = 20;
// setup data scaling to fit view
+ // x-scale
var xScale = d3.scaleLinear()
.domain([0, d3.max(dataset, d => d[0])])
.range([PADDING, WIDTH - PADDING]);
+ // y-scale
var yScale = d3.scaleLinear()
.domain([0, d3.max(dataset, d => d[1])])
- .range([HEIGHT - PADDING, PADDING]);
+ .range([HEIGHT - PADDING, PADDING]); // reverse the range as view coordinate start from top-left
// Create SVG element
var svg = d3.select("body")
@@ -41,13 +70,13 @@ function myScatterPlot() {
.attr("font-size", "11px")
.attr("fill", "red");
- // create axes
- // x axis
+ // draw axes
+ // x axis : transform drawing from top to bottom
svg.append("g")
.attr("transform", `translate(0,${HEIGHT-PADDING})`)
.call(d3.axisBottom()
.scale(xScale));
- // y axis
+ // y axis : transform the drawing to display the scale number
svg.append("g")
.attr("transform", `translate(${PADDING},0)`)
.call(d3.axisLeft()
diff --git a/Day1Exercise/README.md b/Day1Exercise/README.md
index 1d3df7d..2b0a621 100644
--- a/Day1Exercise/README.md
+++ b/Day1Exercise/README.md
@@ -25,6 +25,10 @@ Tips :
* Use SVG circles
* Scale data by 10 times
+Note :
+* D3.js v5 and v4 have different behaviour for read csv
+* v5 have promise framework. Thus v4 code will not work on v5
+
Additional References
* [Making scatter Plot](https://alignedleft.com/tutorials/d3/making-a-scatterplot)
* [D3.js Practical Introduction](https://www.youtube.com/watch?v=TOJ9yjvlapY&list=PLAWhhmqB115BFOrcntOGDE-DsDFeXa_i0&index=2&t=0s)
diff --git a/README.md b/README.md
index 443f511..8c4f02d 100644
--- a/README.md
+++ b/README.md
@@ -15,4 +15,10 @@ Developer Kit : Frontend
## Visual Studio Code Extension
-* Live Server
\ No newline at end of file
+* Live Server
+* Debugger for Chrome
+
+## Debugger
+
+* add `debugger` to code to stop and debug at chrome
+* [VS Code Debugger](https://code.visualstudio.com/docs/editor/debugging)