与此问题相关:How to set different colors for intervals on LineChart at ios charts?
我正在使用Charts Library(Swift),我需要为折线图中的每个间隔(如心率区)添加特定的颜色作为背景色(参见图像)。有人有主意吗?
最佳答案
该库没有该功能的方法,因此您应该自己创建它。我会给您一个简单的示例。
首先,创建YAxisRenderer的子类。
其次,将“renderGridLines”方法的所有代码从“YAxisRenderer”复制到您的子类,以便创建“renderGridLines”的覆盖方法。
然后,将这些代码放在let positions = transformedPositions()
行下方
let viewPortHandler = self.viewPortHandler
var width = viewPortHandler.contentBottom -viewPortHandler.contentTop
if positions.count > 1
{
width = fabs(positions[0] - positions[1])
}
最后,在
drawGridLine(context: context, position: positions[i])
行之后插入这些代码 context.setStrokeColor(yourColor[i])
context.setLineWidth(width)
context.beginPath()
context.move(to: CGPoint(x: viewPortHandler.contentLeft, y: position.y))
context.addLine(to: CGPoint(x: viewPortHandler.contentRight, y: position.y))
context.strokePath()
当然这些代码是不完整的。您还应该为子类添加一个属性,以便也存储背景色。