如何使用iOS图表在LineChart上为间隔设置不同的颜色?

时间:2017-02-17 07:41:16

标签: ios swift charts ios-charts

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

我正在使用图表库(swift),我需要为线图中的每个区间添加特定颜色作为背景颜色,如心率区(见图)。有人有想法吗?

enter image description here

1 个答案:

答案 0 :(得分:2)

图书馆没有这个功能的方法,所以你应该自己创建。我会给你一个简单的样本。

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

当然这些代码都是未完成的。您应该为子类添加一个属性,以便存储背景颜色。