як встановити початкове значення "0" у chartjs?


109

ось мій код. мені потрібно встановити початкове значення як "0" в обох шкалах x і y. Я спробував варіант ваги останньої версії.

graphOptions = {               
            ///Boolean - Whether grid lines are shown across the chart
            scaleShowGridLines: false,    
            tooltipTitleTemplate: "<%= label%>",
            //String - Colour of the grid lines
            scaleGridLineColor: "rgba(0,0,0,.05)",
            //Number - Width of the grid lines
            scaleGridLineWidth: 1,
            //Boolean - Whether to show horizontal lines (except X axis)
            scaleShowHorizontalLines: true,
            //Boolean - Whether to show vertical lines (except Y axis)
            scaleShowVerticalLines: true,
            //Boolean - Whether the line is curved between points
            bezierCurve: true,
            //Number - Tension of the bezier curve between points
            bezierCurveTension: 0.4,
            //Boolean - Whether to show a dot for each point
            pointDot: true,
            //Number - Radius of each point dot in pixels
            pointDotRadius: 4,
            //Number - Pixel width of point dot stroke
            pointDotStrokeWidth: 1,               
            pointHitDetectionRadius: 20,               
            datasetStroke: true,
            datasetStrokeWidth: 2,
            datasetFill: true,               
            legendTemplate: "<ul class=\"<%=name.toLowerCase()%>-legend\"><% for (var i=0; i<datasets.length; i++){%><li><span style=\"background-color:<%=datasets[i].strokeColor%>\"></span><%if(datasets[i].label){%><%=datasets[i].label%><%}%></li><%}%></ul>"
        };
        var LineChart = new Chart(ctx).Line(graphData, graphOptions);
   }     

Відповіді:


298

Для Chart.js 2. *, параметр масштабу, який починається з нуля, вказаний під параметрами конфігурації лінійної шкали . Це використовується для числових даних, що, швидше за все, має стосуватися вашої осі y. Отже, вам потрібно скористатися цим:

options: {
    scales: {
        yAxes: [{
            ticks: {
                beginAtZero: true
            }
        }]
    }
}

Зразок лінійної діаграми також доступний тут, де параметр використовується для осі y. Якщо ваші числові дані знаходяться на осі x, використовуйте xAxesзамість yAxes. Зауважте, що масив (і множина) використовується для yAxes(або xAxes), тому що ви також можете мати кілька осей.


@SuganthanRaj Ласкаво просимо! Просто переконайтеся, що ви ознайомилися з документами для Chart.js 2.0. Багато змінилося з версії 1.0, і більшість прикладів в Інтернеті стосуються версії 1.0. ;)
xnakos

@SuganthanRaj Наприклад, значення scaleShowVerticalLinesнедійсне для 2.0. Або шаблон підказки. Опції, як правило, дотримуються ієрархічного підходу в 2.0.
xnakos

3

Якщо вам потрібно використовувати його як конфігурацію за замовчуванням, просто помістіть min: 0всередину вузла defaults.scale.ticksтак:

defaults: {
  global: {...},
  scale: {
    ...
    ticks: { min: 0 },
  }
},

Довідка: https://www.chartjs.org/docs/latest/axes/


1

Будь ласка, додайте цю опцію:

//Boolean - Whether the scale should start at zero, or an order of magnitude down from the lowest value
scaleBeginAtZero : true,

(Довідка: Chart.js )

Примітка: оригінальне рішення, яке я опублікував, було для Highcharts, якщо ви не використовуєте Highcharts, тоді видаліть тег, щоб уникнути плутанини.


2
не працює . я використовую останню версію chartjs v2.1
Suganthan Raj

@wmash Мені потрібно почати діаграму із заздалегідь заданого значення. Чи знаєте ви, як це зробити? Я спробував поставити цей варіант як істинним, так і хибним, але це не працює.
Майкл.Д

це неправильно, і його можна / слід видалити. beginAtZero: trueце те, що вам потрібно
потрійний
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.