我正在尝试构建图表。
我的y轴在这里以0开头,我不知道如何配置它以及它为什么说话0 - 我看到其他帖子提到了scaleOverride:true,scaleStartValue:0.1,scaleStepWidth:5 - 我不知道如何使用在我的下面的代码中,如何在chart.js中配置y轴。
任何指针都是
我有以下代码
var barChartData = {
labels: ["January", "February", "March", "April", "May", "June", "July"],
datasets: [{
label: 'Dataset 1',
backgroundColor: "rgba(220,220,220,0.5)",
data: [6, 6, 6, 8, 6, 9, 8]
}]
};
function barChart() {
var context = document.getElementById('stacked').getContext('2d');
var myBar = new Chart(context, {
type: 'bar',
data: barChartData,
options: {
title:{
display:true,
text:"Chart.js Bar Chart - Stacked"
},
tooltips: {
mode: 'label'
},
responsive: true,
scales: {
xAxes: [{
stacked: true,
}],
yAxes: [{
stacked: true
}]
}
}
});
};
$(document).ready(function() {
$(document).ready(barChart);
});
答案 0 :(得分:13)
谢谢大家的帮助,我发现chart.js会根据您的数据自动获取y轴的值,您可以在选项>下更改y / x轴设置。比例,我还需要改变y轴的步长并摆脱x轴网格线,“ticks”是我正在寻找的东西,这是我的示例代码和实现所有这些的步骤。
步骤1)Canvas这是占位符,您的图表将显示在JSP
上<canvas width="1393px;" height="500px;" id="stacked"></canvas>
步骤2)创建样本数据集(这是您需要根据您的要求创建的JSON,但请确保您提供与下面给出的完全相同的格式化JSON响应以及您的数据。
var barChartData = {
labels: ["January", "February", "March", "April", "May", "June", "July"],
datasets: [{
label: 'Dataset 1',
backgroundColor: "red",
data: [9, 6, 6, 8, 6, 9, 8]
},
{
label: 'Dataset 1',
backgroundColor: "rgba(225,226,228,0.5)",
data: [9, 6, 6, 8, 6, 9, 8]
}]
};
or you can call JSON from controller inside script as below
var jsonArry = <%=request.getAttribute("jsonArry")%>;
步骤3)调用您在步骤2中创建的JSON
function barChart(){
var context = document.getElementById('stacked').getContext('2d');
var myBar = new Chart(context, {
type: 'bar',
data: jsonArry,
options: {
tooltips: {
mode: 'label'
},
responsive: true,
scales: {
xAxes: [{
ticks:{
stepSize : 10,
},
stacked: true,
gridLines: {
lineWidth: 0,
color: "rgba(255,255,255,0)"
}
}],
yAxes: [{
stacked: true,
ticks: {
min: 0,
stepSize: 1,
}
}]
}
}
});
};
希望这会有所帮助,作为参考,我使用了以下文档Chart JS
感谢。
答案 1 :(得分:2)
只需删除stacked
选项,它将从0开始停止(除非您的数据从0开始)。
相关小提琴 - http://jsfiddle.net/rsyk9he0/
对于堆积图表,Chart.js为每个堆栈(bar)构建正负和的列表,然后使用它来计算出最小值和最大值。如果没有负值,则负和列表是0的列表。这会迫使刻度min为0。
scaleStartValue,scaleStepWidth等是Chart.js的v1.x中的选项。您正在使用v2.x.有关2.x等效项,请参阅How to make integer scale in Chartjs。