วิธีตั้งค่าเริ่มต้นเป็น“ 0” ในชาร์ต js


111

นี่คือรหัสของฉัน ฉันต้องตั้งค่าเริ่มต้นเป็น "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);
   }     

คำตอบ:


303

สำหรับ 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


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 ฉันต้องการเริ่มแผนภูมิจากค่าที่กำหนดไว้ล่วงหน้า คุณรู้วิธีการทำเช่นนี้หรือไม่? ฉันพยายามใส่ตัวเลือกนี้เป็นทั้งจริงและเท็จ แต่ไม่ได้ผล
Michael.D

สิ่งนี้ไม่ถูกต้องและสามารถ / ควรลบได้ beginAtZero: trueคือสิ่งที่คุณต้องการ
สามเท่า
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.