//Create a SVG
var svgWidth = 500;
var svgHeight = 300;
var svg = d3.select("div#svg").append("svg")
    .attr("width", svgWidth)
    .attr("height", svgHeight);

//Create a responsive SVG
var svg = d3.select(html_tag_attr).append("svg")
    .attr("viewBox", "-20 0 "+ svgWidth +" "+ svgHeight)
    .attr("perserveAspectRatio", "xMinYMid");

//Create a line chart
var line = d3.line()
    .x(function(d){ return d.date; })
    .y(function(d){ return d.value; })
    .curve(d3.curveBasis);

svg.append("path")
  .attr("d", line(dataLineChart))
  .attr("fill", "none")
  .attr("stroke", "red");
  
//Create an horizontal axis
var xScale = d3.scaleLinear()
    .domain([minDomain, maxDomain])
    .range([minRange, maxRange]);

var xAxis = d3.axisBottom(xScale);
svg.append("g").call(xAxis);
//NOTE axisBottom does not mean that axis will be placed at the bottom of the graphic but that ticks of the acis will be placed below the line of the axis
//... to place the axis to the bottom of the graphic, you need to replace the line above by the line below
svg.append("g")
  .attr("transform", function(){ return "translate(" + 0 + ", " + height-padding +")")
  .call(xAxis);
  
//yAxis with values from bottom to top of the axis
var yScale = d3.scaleLinear().range([height, 0]),
yScale.domain([0, d3.max(dataLineChart, function(d){ return d.y; })]);

svg.append("g")
  .attr("transform", "translate(" + margin.left + ", " + (0 - margin.bottom) + ")")
  .call(d3.axisLeft(yScale));

