【问题标题】:Chart.js: Don't stretch axes beyond chartChart.js:不要将轴拉伸到图表之外
【发布时间】:2021-07-31 09:38:41
【问题描述】:

我正在使用chart.js 2.9.4 和Angular 的ng2-charts 包装器。我正在尝试显示传入的实时数据,但无法配置图表以使刻度/轴不会超出图表中的数据。换句话说,我希望图表数据点填满图表网格的整个宽度。

StackBlitz 显示我的问题。

如果您在添加数据时继续查看图表,您会发现大多数情况下刻度线都超出了图表中的最后一个点:

我能想到的唯一解决方案是在每次将新数据添加到图表时覆盖 x 轴上刻度的最大值:options.scales.xAxes[0].ticks.max = x;。取消注释 StackBlitz 中的第 68 行以应用它。这解决了我的问题,但引入了另一个问题。有时随着数据的添加,最后两个刻度会重叠:

我尝试过使用比例和刻度选项(边界、分布、步长、源、autoSkip、autoSkipPadding)的各种参数,但没有结果。是否有任何配置参数组合可以解决我的问题?

【问题讨论】:

    标签: javascript chart.js ng2-charts chart.js2


    【解决方案1】:

    您可能想在流插件中添加延迟,配置将如下所示:

    scales: {
          x: {
            type: 'realtime',   // x axis will auto-scroll from right to left
            realtime: {         // per-axis options
              delay: 1000,      // delay of 1000 ms, so upcoming values are known before plotting a line
              pause: false,     // chart is not paused
              ttl: undefined,   // data will be automatically deleted as it disappears off the chart
              
            }
          },
          
    

    我已在您的代码上对此进行了测试,它似乎按预期工作,您可能需要根据需要调整一些参数。

    【讨论】:

    • 我相信这个解决方案使用了自定义插件。我已经在我的项目中尝试过了,它不适用于 Chart.js 2.9.4 并且没有其他插件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多