Paradoxi
Paradoxi

Reputation: 95

Chart.JS: How to make sharp lines to smooth curved lines

Hi I'm new at charts and this is my chartjs chart, it's working currently, but it's showing in sharp lines and I want to make it smooth curve lines on this chart. Any ideas?

function statistics(data) {
    if ($('#stats-currency').length > 0) {

        if (typeof(stats_currency) !== 'undefined') {
            stats_currency.destroy();
        }
        if (typeof(data) == 'undefined') {
            var currency = $('select[name="currency"]').val();
            $.get(admin_url + 'home/stats_currency/' + currency, function(response) {
                stats_currency = new Chart($('#stats-currency'), {
                    type: 'line',
                    data: response,
                    options: {
                        responsive:true,
                        scales: {
                            yAxes: [{
                              ticks: {
                                beginAtZero: true,
                            }
                        }]
                    },
                },
            });
            }, 'json');
        } else {
            stats_currency = new Chart($('#stats-currency'), {
                type: 'line',
                data: data,
                options: {
                    responsive: true,
                    scales: {
                        yAxes: [{
                          ticks: {
                            beginAtZero: true,
                        }
                    }]
                },
            },
        });
        }

Upvotes: 6

Views: 17564

Answers (2)

user889030
user889030

Reputation: 4754

you can do it by adding tension value to your charts options

<canvas id="myChart"></canvas>

JS

const config = {
  type: 'line',   // your chart type
  data: data,   // pass here your data
  options: {
    elements: {
        line: {
            tension : 0.4  // smooth lines
        },
    },
  },
};

// pass it like
  const myChart = new Chart(
    document.getElementById('myChart'),
    config
  );

Upvotes: 5

uminder
uminder

Reputation: 26150

This can be done through the option lineTension that needs to be defined on your dataset. Choose a value below 1.

datasets: [{
  ... 
  lineTension: 0.8
}]

By default, you should however already see curved smooth lines since accoring to Chart.js documentation, the default value is 0.4.

lineTension: Bezier curve tension of the line. Set to 0 to draw straight lines.

Please note that if the steppedLine value is set to anything other than false, lineTension will be ignored.

Upvotes: 21

Related Questions