与此问题相关:How to set different colors for intervals on LineChart at ios charts?
我正在使用图表库(swift),我需要为线图中的每个区间添加特定颜色作为背景颜色,如心率区(见图)。有人有想法吗?
答案 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()
当然这些代码都是未完成的。您应该为子类添加一个属性,以便存储背景颜色。