0

I'm trying to make a line graph using Chart.js in an ASP.net project, but none of the data will show up: https://i.sstatic.net/vFcjT.png Here is my code:

<script src="~/Scripts/Chart.js"></script>
<div>
    <canvas id="CO2Chart" width="800" height="450"></canvas>
</div>

<script>
    var CO2data = {
        labels: [1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019],
        datasets: {
            data: [315.97, 316.91, 317.64, 318.45, 318.99, 319.62, 320.04, 321.38, 322.16, 323.04, 324.62, 325.68, 326.32, 327.45, 329.68, 330.18, 331.11, 332.04, 333.83, 335.4, 336.84, 338.75, 340.11, 341.45, 343.05, 344.65, 346.12, 347.42, 349.19, 351.57, 353.12, 354.39, 355.61, 356.45, 357.1, 358.83, 360.82, 362.61, 363.73, 366.7, 368.38, 369.55, 371.14, 373.28, 375.8, 377.52, 379.8, 381.9, 383.79, 385.6, 387.43, 389.9, 391.65, 393.85, 396.52, 398.65, 400.83, 404.24, 406.55, 408.52, 411.44],
            label: "CO2 Atmospheric Concentration",
            fill: true,
            lineTension: 0.8,
            borderColor: "#000000",
            backgroundColor: "#000000",
            borderWidth: 5

        }
    }
    var CO2options = {
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero: true,
                    min: 300,
                    max: 475,
                    stepsize: 5
                }
            }]
        }
    }
    var ctx = document.getElementById('CO2Chart').getContext('2d');
    var CO2Chart = new Chart(ctx, {
        type: "line",
        data: CO2data,
        options: CO2options
    }
    );
1

1 Answer 1

2

The problem is that inside CO2data, you didn't define datasets as an array. It should look as follows:

var CO2data = {
  labels: [...],
  datasets: [{
    ...
  }]
};

For further details, consult Dataset Configuration from Chart.js documentation.

Please have a look at your amended code below.

var CO2data = {
  labels: [1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019],
  datasets: [{
    data: [315.97, 316.91, 317.64, 318.45, 318.99, 319.62, 320.04, 321.38, 322.16, 323.04, 324.62, 325.68, 326.32, 327.45, 329.68, 330.18, 331.11, 332.04, 333.83, 335.4, 336.84, 338.75, 340.11, 341.45, 343.05, 344.65, 346.12, 347.42, 349.19, 351.57, 353.12, 354.39, 355.61, 356.45, 357.1, 358.83, 360.82, 362.61, 363.73, 366.7, 368.38, 369.55, 371.14, 373.28, 375.8, 377.52, 379.8, 381.9, 383.79, 385.6, 387.43, 389.9, 391.65, 393.85, 396.52, 398.65, 400.83, 404.24, 406.55, 408.52, 411.44],
    label: "CO2 Atmospheric Concentration",
    fill: true,
    lineTension: 0.8,
    borderColor: "#000000",
    backgroundColor: "#000000",
    borderWidth: 5
  }]
};

var CO2options = {
  scales: {
    yAxes: [{
      ticks: {
        beginAtZero: true,
        min: 300,
        max: 475,
        stepsize: 5
      }
    }]
  }
};

var ctx = document.getElementById('CO2Chart').getContext('2d');
var CO2Chart = new Chart(ctx, {
  type: "line",
  data: CO2data,
  options: CO2options
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script>
<div>
    <canvas id="CO2Chart" width="800" height="450"></canvas>
</div>

Sign up to request clarification or add additional context in comments.

1 Comment

@Mike L: Glad I could help. Please mark my answer as accepted if you think it was the solution to your problem (see meta.stackoverflow.com/a/251399/2358409).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.