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

SwiftUI Charts双折线图线条意外相连问题求助

SwiftUI Charts两条折线意外连接的原因与修复方案

问题原因

你的代码中,两个LineMark仅通过x和y定义数据维度,但没有为每条折线指定独立的系列标识。SwiftUI Charts默认会将所有共享同一x轴维度的点归为同一个数据系列,导致早晚温度的点被错误地连接成一条线。

修复方案

在每个LineMark中添加series参数,明确区分两个数据系列:

Chart {
    ForEach(morningTemp) {
        LineMark(
            x: .value("Date", $0.date),
            y: .value("Morning Temp", $0.value),
            series: .value("Series", "Morning") // 新增系列标识
        )
        .foregroundStyle(.blue)
    }
    
    ForEach(eveningTemp) {
        LineMark(
            x: .value("Date", $0.date),
            y: .value("Evening Temp", $0.value),
            series: .value("Series", "Evening") // 新增系列标识
        )
        .foregroundStyle(.red)
    }
}

补充说明

  • series参数的核心作用是告诉Chart组件哪些数据点属于同一组系列,不同系列的点不会被跨系列连接。这里用"Morning"和"Evening"作为区分标识,确保两条折线各自独立渲染。
  • 另一种等价方式是将每组数据包裹在Section中,不过直接添加series参数是更简洁的处理方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 05:32:38