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

问题描述 投票:2回答:1

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

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

enter image description here

ios swift charts ios-charts
1个回答
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()

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

© www.soinside.com 2019 - 2024. All rights reserved.