查看Apple文档,我发现了一种简单的方法,只要您的数据集结构正确(我的数据集不是(。我一直在处理一个CSV文件,其中包含如下结构的行:
PM2.5 data, PM10 data, DateTime
PM2.5 data, PM10 data, DateTime
...
我已经将每一行解析为一个Measurement
对象:
struct Measurement: Identifiable {
var id: String // time of measurement
var pm25: Float
var pm10: Float
}
我天真地认为我可以这样添加多个线标记(measurements
是Measurement
对象的数组(:
Chart(measurements){
LineMark (
x: .value("Time", $0.id),
y: .value("PM2.5", $0.pm25)
)
LineMark (
x: .value("Time", $0.id),
y: .value("PM2.5", $0.pm10)
)
}
但这不会创建多条线。有人能为如何在Swift UI中使用Swift图表来实现这一点提供任何建议吗?我在Stack Overflow上找到了很多解决方案,但它们适用于Swift 4或更旧版本,不适用于SwiftUI。
您可以尝试这种简单的方法,使用LineMark
:的series
版本
Chart(measurements) {
LineMark(
x: .value("Time", $0.id),
y: .value("PM2.5", $0.pm25),
series: .value("pm25", "A") // <-- here
).foregroundStyle(.red)
LineMark(
x: .value("Time", $0.id),
y: .value("PM1.0", $0.pm10),
series: .value("pm10", "B") // <-- here
).foregroundStyle(.green)
}