actually I am trying to make a chart line using D3.js. I made x axis and y axis but now the chart line is missing. here is my json data:
filterData([ ` { "Sparte": "Beherbergung", "Jahr": 2020, "Monat": "Januar", "Beschaeftigte": "100,3", "VeraederungenzumVorjahr": "0,3" }, { "Sparte": "Beherbergung", "Jahr": 2020, "Monat": "Februar", "Beschaeftigte": "99,7", "VeraederungenzumVorjahr": "0,2" }, { "Sparte": "Beherbergung", "Jahr": 2020, "Monat": "Maerz", "Beschaeftigte": "96,3", "VeraederungenzumVorjahr": "-5,0" }]);
an here is my script:
function filterData(data){
const beherbergungen = data.filter(
item => item.Sparte === 'Beherbergung'
);
visualiseChart(beherbergungen);
}
function visualiseChart(data){
var margin = {top: 10, right: 30, bottom: 30, left: 60},
width = 900 - margin.left - margin.right,
height = 400 - margin.top - margin.bottom;
// append the svg object to the body of the page
var svg = d3.select("#visualisationContainer")
        .append("svg")
        .attr("width", width + margin.left + margin.right)
        .attr("height", height + margin.top + margin.bottom)
        .append("g")
        .attr("transform",`translate(${margin.left},${margin.top})`);
var xAxis = d3.scaleBand()
          .domain(data.map(function(d) { return d.Monat; }))
          .range([0, width]);
   svg.append("g")
  .attr("transform", `translate(0, ${height})`)
  .call(d3.axisBottom(xAxis));
 
  var yAxis = d3.scaleLinear()
                .domain([-50,50])
                .range([height, 0]);
  svg.append("g")
     .call(d3.axisLeft(yAxis));
//curve is not displaying
var curve = svg.append("path")
           .datum(data)
           .attr("fill", "none")
           .attr("stroke", "turquoise")
           .attr("stroke-width", 4)
           .attr("d",d3.line()
              .x(data.map(function(d) {return xAxis(d.Monat);})) //here is the problem
              .y(data.map(function(d) {return yAxis(d.VeraederungenzumVorjahr);}))//here is the problem
            ); 
}
 
    