我想更改 ESP32 代码中仪表上“参考”标签的值。 仪表:
var humidityData = [
{
domain: { x: [0, 1], y: [0, 1] },
value: 0,
title: { text: "Feuchtigkeit" },
type: "indicator",
mode: "gauge+number+delta",
delta: { reference: 69 },
gauge: {
axis: { range: [40, 103] },
steps: [
{ range: [10, 65], color: "red" },
{ range: [65, 68], color: "yellow" },
{ range: [68, 75], color: "lightgreen" },
{ range: [75, 78], color: "yellow" },
{ range: [78, 103], color: "red" },
],
},
},
];
应该更新参考的代码:
function updateGauge(temperature, humidity, humidity_soll) {
var temperature_update = {
value: temperature,
};
var humidity_update = {
value: humidity,
reference: humidity_soll,
};
Plotly.update(temperatureGaugeDiv, temperature_update);
Plotly.update(humidityGaugeDiv, humidity_update);
}
但参考仍然是最初的参考。该函数不会使用我正确移交的 json 中的新值来更新它。 更改简单的“value”标签没有问题。但“参考”标签没有更新。也许我必须用另一种方式来做这件事? 对我有什么建议吗? 到目前为止,这是我第一次实现plotly.io。 很抱歉这个菜鸟问题......
亲切的问候 弗兰克
您尝试通过在更新对象的顶层传递新的参考值来更新仪表。但是,Plotly 希望参考值嵌套在 delta 属性下,与您第一次定义图表时使用的结构相匹配,因此您需要使用
'delta.reference'
作为键。
function updateGauge(temperature, humidity, humidity_soll) {
var temperature_update = {
value: temperature,
};
var humidity_update = {
value: humidity,
'delta.reference': humidity_soll,
};
Plotly.update(temperatureGaugeDiv, [temperature_update]);
Plotly.update(humidityGaugeDiv, [humidity_update]);
}