JSFiddle - React, Tailwind, and code Playground
CSS
.axis path,
.axis line {
fill: none;
stroke: #999;
shape-rendering: crispEdges;
}
text {
font-family: sans-serif;
font-size: 10px;
stroke: #ccc;
}
.line {stroke: #ff8807; stroke-width: 2;fill: transparent;}
.line1 {stroke:#ff3401; stroke-width: 2;fill: transparent;}
.container {background: #222;}
.area {
fill: #000;
stroke-width: 0;
opacity: 0.5
}
.area1 {
fill: #000;
opacity: 0.1;
stroke-width: 0;
}
JavaScript
var lineData = [ { "x": 0, "y": 5}, { "x": 20, "y": 20},
{ "x": 40, "y": 10}, { "x": 60, "y": 40},
{ "x": 80, "y": 5}, { "x": 200, "y": 30}];
var p = [ { "x": 1, "y": 0}, { "x": 20, "y": 20},
{ "x": 40, "y": 10},
{ "x": 60, "y": 40},
{ "x": 80, "y": 5},
{ "x": 90, "y": 50},
{ "x": 96, "y": 10},
{ "x": 102, "y": 19},
{ "x": 109, "y": 13},
{ "x": 119, "y": 19},
{ "x": 132, "y": 30},
{ "x": 143, "y": 41},
{ "x": 149, "y": 29},
{ "x": 200, "y": 80}
]
//Do some basic setup - set margins and widths for the entire graph
var margin = {top: 20, right: 30, bottom: 30, left: 40},
width = 700 - margin.left - margin.right,
height = 550 - margin.top - margin.bottom;
//Define Scale
var x = d3.scale.linear()
.range([0, width]);
var y = d3.scale.linear()
.range([height, 0]);
//Define an x Axis
var xAxis = d3.svg.axis()
.scale(x)
.orient("bottom");
//Define an y axis
var yAxis = d3.svg.axis()
.scale(y)
.orient("left");
//Define a line data accessor function
var line = d3.svg.line()
.x(function(d) { return x(d.x); })
.y(function(d) { return y(d.y); }).interpolate('cardinal');
//define an area accessor function - used to draw the areas under the line
var area = d3.svg.area()
.x(function(d) { return x(d.x); })
.y0(height)
.y1(function(d) { return y(d.y); }).interpolate('cardinal');
var svg = d3.select("body").append("svg")
.attr("class",'container')
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform",...