在Chartjs中,如何从外部设置scales.y.min值

问题描述 投票:0回答:1

我正在使用线性图表并用它来可视化可能非常复杂的波形。应用程序要求根据可变的外部要求对数据 y 范围进行预缩放,典型限制为从 (-10:0) 到 (-500:0)。默认情况下,如果没有初始预先缩放的 y 轴,图表会在数据到达时动态重新缩放自身。

在发送数据之前,我需要将 Chartjs 变量预先设置到图表结构中。下面我将其称为假设。

scales: {
   y: {
      min: <NewNegativeValue>,
      max: 0,
      stepSize: 10,
      title:
         etc

我想我可以像使用 JavaScript 设置其他图表设置一样设置这个值。我不明白的是如何将其写入图表结构。

我花了几个小时在网上搜索,尽管讨论了动态缩放的概念,但在所有情况下我都发现它们涉及检查数据并使用 Math() 函数或类似的东西。就我而言,在调用图表之前我了解所有数据。我只需要知道如何在发送数据之前通过 javascript 设置 y 值。

罗恩

chart.js
1个回答
0
投票

为了帮助将来某个时候寻找此问题的其他新手,以下是我实现答案的方法。在发现最小值后的 C++ 中(我的数据都是负数):

// Now set the min scale for the chart y axis.
//
sprintf(text, "%d", (int32_t)MotorControl.GetAmplitude());
values["minValue"] = String(text);
jsonString = JSON.stringify(values);
events.send(jsonString.c_str(), "set_min_value", millis());

在json脚本中!!Windows.EventSource:

source.addEventListener('set_min_value', function(e) {
   var myObj = JSON.parse(e.data);
   setMinAxis(myObj.minValue);
}, false);

在图表脚本中:

function setMinAxis(minValue) {
   myChart0.options.scales.y.min = Math.trunc(minValue);
{

我的 y 轴是整数,并且没有 trunc 函数,在图表上,最小值显示为小数点后跟十几个零。

© www.soinside.com 2019 - 2024. All rights reserved.