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
相关产品推荐
相关产品推荐

