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

SwiftUI Chart如何在同一图表中叠加展示多组图形数据

实现结论

该需求完全可以实现,不需要对两组原始数据源做强制合并。SwiftUI Charts 原生支持在同一个图表容器内添加多组来自不同数据源的标记(Mark),两组折线会自动按照x、y轴的标尺对齐叠加展示。

实现代码

直接将两组折线的绘制逻辑放到同一个Chart闭包内即可,参考实现如下:

Chart {
    // 绘制第一组数据折线
    ForEach(db.objects, id: \.self) { object in
        LineMark(
            x: .value("name", object.name),
            y: .value("value", Int(object.value) ?? 0)
        )
        .foregroundStyle(.blue)
    }

    // 绘制第二组数据折线
    ForEach(db.objects2, id: \.self) { object2 in
        LineMark(
            x: .value("name", object2.name),
            y: .value("value", Int(object2.value) ?? 0)
        )
        .foregroundStyle(.red)
    }
}
补充说明
  • 示例中给两条折线设置了不同的foregroundStyle颜色,方便视觉上区分两组数据。
  • 如果需要自动生成图例区分分组,可以给对应LineMark添加系列绑定,代码示例:.foregroundStyle(by: .value("数据类型", "第一组数据")),框架会自动识别不同系列生成图例。
  • 只要两组数据的x轴、y轴数值维度一致,框架会自动适配坐标范围,不需要手动调整标尺。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 18:51:48