我正在尝试使用 Swift Charts 绘制下面的图表。我无法弄清楚如何根据 Y 值更改线条的颜色。在下图中,Y 的不同范围分配有不同的颜色,线条反映了这一点。
我尝试使用 LineMark 的前景设置线条颜色,但它似乎只采用第一个颜色分配并忽略其上设置的任何其他颜色。
Chart {
ForEach(plotItemSeries) { plotItem in
LineMark(x: .value("XVAL", plotItem.xVal),
y: .value("YVAL", plotItem.yVal))
.foregroundStyle(plotItem.zoneColor) // <== color assigned base on y-val
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用前景比例,但它只是将其分成多个系列,就像您所期望的那样。
Chart {
ForEach(plotItemSeries) { plotItem in
LineMark(x: .value("XVAL", plotItem.xVal),
y: .value("YVAL", plotItem.yVal))
.foregroundStyle(by: .value("Zone", plotItem.zoneColorName)) // <== "gray", "blue", etc..
}
}
.chartForegroundStyleScale(["gray": Color("grayCustom"),
"green": Color("greenCustom"),
"blue": Color("blueCustom"),
"orange": Color("orangeCustom"),
"red": Color("redCustom")])
Run Code Online (Sandbox Code Playgroud)
有什么想法如何根据 y 值设置线条的颜色吗?