Chart.js 如何更新chartjs2选项(scale.tick.max)
我有一个带有此选项的条形图Chart.js 如何更新chartjs2选项(scale.tick.max),chart.js,Chart.js,我有一个带有此选项的条形图 scales: { yAxes: [{ ticks: { display:false, beginAtZero:true, max: 1150 } }] } 现在,我更改唯一数据集的值 barChartData.datasets[0].data = newData; 并更新图表
scales: {
yAxes: [{
ticks: {
display:false,
beginAtZero:true,
max: 1150
}
}]
}
现在,我更改唯一数据集的值
barChartData.datasets[0].data = newData;
并更新图表
window.myBar.update();
我如何更新雅克斯的最大比例
我必须使用最大刻度,所以我不能使用suggestedMax。自己找到了解决方案 要更改图表的任何选项,请执行以下操作:
myBar.config.options
就我而言
myBar.config.options.scales.yAxes[0].ticks.max = newValue
这之后你必须打电话
window.myBar.update();
这个链接有相当最新的信息。
关键是识别图表对象是什么。:)
我花了半天的时间阅读各种各样的文章,直到找到了正确的方法
:)这是我的折线图解决方案 您可以使用“beforeFit”回调函数,您可以在文档中找到该函数
scales: {
yAxes: [{
beforeFit: function (scale) {
// See what you can set in scale parameter
console.log(scale)
// Find max value in your dataset
let maxValue = 0
if (scale.chart.config && scale.chart.config.data && scale.chart.config.data.datasets) {
scale.chart.config.data.datasets.forEach(dataset => {
if (dataset && dataset.data) {
dataset.data.forEach(value => {
if (value > maxValue) {
maxValue = value
}
})
}
})
}
// After, set max option !!!
scale.options.ticks.max = maxValue
}
}
我希望我能有所帮助。非常令人沮丧,他们的文档详细讨论了每个选项,但对于每个选项在初始对象中的位置以及如何动态更改,几乎没有帮助,@Josh Diehl使用Js调试程序对某个变量进行断点,这对查看每个图表的内部结构有很大帮助?在传递给此事件的刻度上设置最大值对我来说是有效的,而在我的图表上设置最大值选项却没有。
scales: {
yAxes: [{
beforeFit: function (scale) {
// See what you can set in scale parameter
console.log(scale)
// Find max value in your dataset
let maxValue = 0
if (scale.chart.config && scale.chart.config.data && scale.chart.config.data.datasets) {
scale.chart.config.data.datasets.forEach(dataset => {
if (dataset && dataset.data) {
dataset.data.forEach(value => {
if (value > maxValue) {
maxValue = value
}
})
}
})
}
// After, set max option !!!
scale.options.ticks.max = maxValue
}
}