与此问题相关:How to set different colors for intervals on LineChart at ios charts?

我正在使用Charts Library(Swift),我需要为折线图中的每个间隔(如心率区)添加特定的颜色作为背景色(参见图像)。有人有主意吗?

ios - 如何使用iOS图表在折线图上为间隔设置不同的颜色?-LMLPHP

最佳答案

该库没有该功能的方法,因此您应该自己创建它。我会给您一个简单的示例。

首先,创建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()

当然这些代码是不完整的。您还应该为子类添加一个属性,以便也存储背景色。

10-08 07:48