JSFiddle - React, Tailwind, and code Playground

by Nevin Madhukar

JavaScript

var data=[{"name": "x1", 
	  "position":[0,60,80,130,200]
	 },

	 {"name": "y1", 
	  "position":[0,190,220,180,240]
	  },

	 {"name": "x2", 
	  "position":[0,40,80,120,200]
	 },

	 {"name": "y2", 
	  "position":[10,90,20,60,40]},
	
 	 {"name": "x3", 
	  "position":[30,70,100,130,230]
	 },

	 {"name": "y3", 
	  "position":[20,160,170,160,150]}]

    var tip = d3.tip()
            .attr('class', 'd3-tip')
            .offset([-10, 0])
            .html(function(d) {
                console.log(d);
                return "<strong>Frequency:</strong> <span style='color:red'>" + d + "</span>";
            });

    var dataArray = new Array(), k = 0, j = 0, dataArraySize = 0, line, positionNumber,
            canvas = d3.select("body").append("svg")
            .attr("width", 1000)
            .attr("height", 1000)
            .attr("border", "black")
            .call(tip);

    heightScale = d3.scale.linear()
            .domain([0, 250])
            .range([300, 0]);

    widthScale = d3.scale.linear()
            .domain([0, 250])
            .range([0, 900]);

    Yaxis = d3.svg.axis()
            .ticks(5)
            .scale(heightScale)
            .orient("left");

    Xaxis = d3.svg.axis()
            .ticks(10)
            .scale(widthScale)
            .orient("bottom");

    jsonLength = Object.keys(data).length;

    group = canvas.append("g")
            .attr("class", "grp")
            .attr("transform", "translate(100,10)");


//    Conversion of JSON data to appropriate data format
    for (j = 0; j < jsonLength; j += 2) {
        var innerObjArray = [];
        positionNumber = Object.keys(data[j].position).length;
        for (k = 0; k < positionNumber; k++) {
            var obj = {};
            obj.x = data[j].position[k];
            obj.y = data[j + 1].position[k];
            innerObjArray.push(obj);
        }
        dataArray.push(innerObjArray);
    }
    console.log(dataArray);
    dataArraySize = dataArray.length;

//Graphical...