You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeRED技术求助:chart节点无法显示多条曲线的问题排查

解决Node-RED Chart节点只显示单条曲线的问题

我来帮你梳理下问题所在,你遇到的情况主要是函数节点的消息返回格式错误,加上Chart节点需要明确的系列标识这两个原因导致的,咱们一步步来修正:

1. 函数节点返回格式的问题

你当前返回的是[[left,right]],这是一个嵌套数组——Node-RED里,函数节点要输出多个独立消息,直接返回一个一维数组[left, right]就可以了。嵌套数组会被Node-RED识别为「单个消息,其payload是包含两个元素的数组」,而不是两个独立的消息。这就是为什么Chart节点只收到了一组数据,只能画出一条曲线,同时连接Chart的调试节点会输出数组的原因。

2. Chart节点需要区分曲线系列

就算你正确返回两个消息,如果不给每个消息标记不同的系列,Chart节点会默认把它们归为同一系列,自然只会显示同一种颜色。你需要给每个消息对象添加topic或者series属性,告诉Chart节点这是两条独立的曲线。

修正后的代码

把你的函数节点代码改成下面这样:

var left = {
    payload: msg.payload.readResults[0].v,
    topic: "左侧数据" // 自定义系列名称,比如"Left"也可以
};
var right = {
    payload: msg.payload.readResults[1].v,
    topic: "右侧数据" // 另一个系列名称,和上面区分开
};
return [left, right]; // 直接返回一维数组,输出两个独立消息

为什么这样改能解决问题?

  • 去掉嵌套数组后,函数节点会把left和right作为两个独立的消息发送出去,Chart节点能分别接收这两条数据;
  • topic属性会被Chart节点用来区分不同的曲线系列,自动为每个系列分配不同的颜色,这样就能显示两条不同颜色的曲线了。

部署修改后的流,再发送数据试试:连接函数节点的调试节点会输出两个独立的数值消息,Chart节点也会生成两条对应不同颜色的曲线啦。

内容的提问来源于stack exchange,提问作者Glenn94

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 21:52:42