这似乎是愚蠢的微不足道,但尝试我似乎无法找到如何为chart.js中的条设置默认颜色 .
我的图表从ajax请求获取数据,图表正好呈现 . 但是,既不更新 Chart.defaults.global.defaultColor 也不会将 defaultColor 作为选项添加到数据集中会产生任何影响 .
我非常感谢任何指点我在这里正确方向的人 .
$.ajax({
type: 'GET',
async: true,
url: "{{route('stats.monthlyData')}}",
dataType: 'json',
success: function (response) {
var labels = [];
var data = [];
$.each(response, function () {
labels.push(this.month_name);
data.push(this.record_count);
});
drawChart('# of Records', labels, data);
}
});
function drawChart(label, labels, data){
var ctx = document.getElementById("chart");
//Chart.defaults.global.defaultColor = "#3498db"; Tried this but does not work
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: labels,
datasets: [{
label: label,
data: data,
//defaultColor: ['#3498db'], Tried this but does not work
backgroundColor: ['#3498db'], //Only the first bar gets set
borderColor: [],
borderWidth: 1
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero:true
}
}]
}
}
});
}
谢谢 .
UPDATE
如果它可以帮助任何人,问题是我将 backgroundColor 属性设置为只有一个条目的数组 . 如果要为所有列默认它,则只应将其设置为字符串 . 感谢@ mp77让我注意到这个问题 .
1 回答
您需要在
datasets
数组中使用fillColor
属性 - (而不是borderColor
,请尝试strokeColor
,如下所示)从chartjs的一个演示中可以看到一个完整的工作示例here