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();
这个链接有相当最新的信息。 关键是识别图表对象是什么。:) 我花了半天的时间阅读各种各样的文章,直到找到了正确的方法

  • 使用BaseChart指令通过执行此操作->this.chart直接访问图表
  • 要更新比例,请执行以下操作:
  • 然后更新图表:
  • this.chart.chart.update()

    你几乎可以更新一切。只需了解图表对象在本页中的含义:
    :)

    这是我的折线图解决方案

    您可以使用“beforeFit”回调函数,您可以在文档中找到该函数

  • 在scale.chart.config.data.datasets中有图表数据集
  • 必须设置scale.options.ticks.max
  • 例如:

    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
              }
            }