question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

These chart samples are useless

See original GitHub issue

Discussed in https://github.com/chartjs/Chart.js/discussions/9604

<div type='discussions-op-text'>

Originally posted by WEB-TM August 31, 2021 I don`t really understand how to setup a line chart using this nonsense. There is not selector to select canvas and there is not data array. These samples does not help me at all.

https://www.chartjs.org/docs/latest/samples/line/line.html https://github.com/chartjs/Chart.js/blob/master/docs/samples/line/line.md

// <block:actions:2>
const actions = [
  {
    name: 'Randomize',
    handler(chart) {
      chart.data.datasets.forEach(dataset => {
        dataset.data = Utils.numbers({count: chart.data.labels.length, min: -100, max: 100});
      });
      chart.update();
    }
  },
  {
    name: 'Add Dataset',
    handler(chart) {
      const data = chart.data;
      const dsColor = Utils.namedColor(chart.data.datasets.length);
      const newDataset = {
        label: 'Dataset ' + (data.datasets.length + 1),
        backgroundColor: Utils.transparentize(dsColor, 0.5),
        borderColor: dsColor,
        data: Utils.numbers({count: data.labels.length, min: -100, max: 100}),
      };
      chart.data.datasets.push(newDataset);
      chart.update();
    }
  },
  {
    name: 'Add Data',
    handler(chart) {
      const data = chart.data;
      if (data.datasets.length > 0) {
        data.labels = Utils.months({count: data.labels.length + 1});

        for (var index = 0; index < data.datasets.length; ++index) {
          data.datasets[index].data.push(Utils.rand(-100, 100));
        }

        chart.update();
      }
    }
  },
  {
    name: 'Remove Dataset',
    handler(chart) {
      chart.data.datasets.pop();
      chart.update();
    }
  },
  {
    name: 'Remove Data',
    handler(chart) {
      chart.data.labels.splice(-1, 1); // remove the label first

      chart.data.datasets.forEach(dataset => {
        dataset.data.pop();
      });

      chart.update();
    }
  }
];
// </block:actions>

// <block:setup:1>
const DATA_COUNT = 7;
const NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};

const labels = Utils.months({count: 7});
const data = {
  labels: labels,
  datasets: [
    {
      label: 'Dataset 1',
      data: Utils.numbers(NUMBER_CFG),
      borderColor: Utils.CHART_COLORS.red,
      backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),
    },
    {
      label: 'Dataset 2',
      data: Utils.numbers(NUMBER_CFG),
      borderColor: Utils.CHART_COLORS.blue,
      backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),
    }
  ]
};
// </block:setup>

// <block:config:0>
const config = {
  type: 'line',
  data: data,
  options: {
    responsive: true,
    plugins: {
      legend: {
        position: 'top',
      },
      title: {
        display: true,
        text: 'Chart.js Line Chart'
      }
    }
  },
};
// </block:config>

module.exports = {
  actions: actions,
  config: config,
};

In old version I used to (this old code is clear and easy to understand):

// chart colors
var colors = ['#007bff','#28a745','#333333','#c3e6cb','#dc3545','#6c757d'];

/* large line chart */
var line = document.getElementById("line");
var chartData = {
  labels: ["S", "M", "T", "W", "T", "F", "S"],
  datasets: [{
    data: [589, 445, 483, 503, 689, 692, 634],
    backgroundColor: 'transparent',
    borderColor: colors[0],
    borderWidth: 4,
    pointBackgroundColor: colors[0]
  }]
};
if (line) {
  new Chart(line, {
  type: 'line',
  data: chartData,
  options: {
    scales: {
      xAxes: [{
        ticks: {
          beginAtZero: false
        }
      }]
    },
    legend: {
      display: false
    },
    responsive: true
  }
  });
}

var line1 = document.getElementById("line1");
if (line1) {
  new Chart(line1, {
      type: 'line',
      data: {
          labels: ['Jan','Feb','Mar','Apr','May'],
          datasets: [
            {
              backgroundColor:'#ffffff',
              borderColor:'#ffffff',
              data: [10, 11, 4, 11, 4],
              fill: false
            }
          ]
      },
      options: lineOptions
  });
}
```</div>

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Reactions:4
  • Comments:14 (3 by maintainers)

github_iconTop GitHub Comments

4reactions
Atif-Bashir-1998commented, Sep 1, 2021

I totally agree with @WEB-TM . The documentation is not clear and it should be changed asap. The documentation might be easier for the contributor of chart.js but it is definitely not helping the developers

3reactions
kurklecommented, Sep 1, 2021

I think both of you are mixing samples and documentation. Samples are used to demo various features, while documentation is the thing to read when figuring out how to use the library.

As always, it can be improved and improvements are welcome, please open a pull request improving the documentation (asap).

Read more comments on GitHub >

github_iconTop Results From Across the Web

Totally Useless Charts & How to Build Them – “Hand- ...
“Hand-Drawn” Bar Charts. First, let's look at an example of what we're talking about. Here is a viz that I published recently about ......
Read more >
The 27 Worst Charts of All Time - Business Insider
As a learning exercise, we pulled together these 27 charts that are particularly bad. It's not that the chart creators are dumb or...
Read more >
COVID-19 In Charts: Examples of Good & Bad Data ...
In today's post I break down some examples of both good and bad data visualization created in the name of COVID-19.
Read more >
16 useless infographics | News | The Guardian
Radar charts can be handy when you need more than two axes, for example when you want to compare products. In this case,...
Read more >
When Data Visualization Really Isn't Useful (and When It Is)
This article explores some of the worst and best visualizations out there, and looks at some data visualization mistakes to avoid.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found