Joh*_*ton 13 swiftui swiftui-charts
查看Apple文档,我发现了一种简单的方法来执行此操作,前提是您的数据集结构正确(我的数据集结构不正确)。我一直在使用一个 CSV 文件,其中包含结构如下的行:
PM2.5 data, PM10 data, DateTime
PM2.5 data, PM10 data, DateTime
...
Run Code Online (Sandbox Code Playgroud)
我已将每一行解析为一个Measurement对象:
struct Measurement: Identifiable {
var id: String // time of measurement
var pm25: Float
var pm10: Float
}
Run Code Online (Sandbox Code Playgroud)
我天真地认为我可以像这样添加多个线标记(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)
)
}
Run Code Online (Sandbox Code Playgroud)
但这不会创建多行。任何人都可以提供有关如何在 Swift UI 中使用 Swift Charts 实现此目标的任何建议吗?我在 Stack Overflow 上找到了很多解决方案,但它们适用于 Swift 4 或更早版本,没有适用于 SwiftUI。
wor*_*dog 20
您可以尝试这种简单的方法,使用series以下版本LineMark:
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)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3191 次 |
| 最近记录: |