如何为饼图的每个切片设置特定的颜色?

How to set specific color to each slice of Pie Chart?

我在我的项目中使用图表库来显示饼图。现在它为每个切片显示随机颜色,但我想为每个切片设置特定颜色,我该怎么做? 到目前为止,这是我的代码:

func setChart(dataPoints: [String], values: [Double]) {

    var dataEntries: [ChartDataEntry] = []

    for i in 0..<values.count {
        let dataEntry1 = PieChartDataEntry(value: values[i])
        dataEntries.append(dataEntry1)
    }

    let pieChartDataSet = PieChartDataSet(entries: dataEntries, label: "Units Sold")
    let pieChartData = PieChartData(dataSet: pieChartDataSet)
    pieChartData.setValueTextColor(NSUIColor.clear)
    pieChartView.data = pieChartData

    var colors: [UIColor] = []

    for _ in 0..<dataPoints.count {
        
        let red = Double(arc4random_uniform(256))
        let green = Double(arc4random_uniform(256))
        let blue = Double(arc4random_uniform(256))

        let color = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 1)
        colors.append(color)
    }

    pieChartDataSet.colors = colors

    pieChartView.transparentCircleColor = UIColor.clear
    
}

你的切片颜色是随机的,因为你在下面为每个数据点设置了随机颜色

for _ in 0..<dataPoints.count {
    
    let red = Double(arc4random_uniform(256))
    let green = Double(arc4random_uniform(256))
    let blue = Double(arc4random_uniform(256))

    let color = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 1)
    colors.append(color)
}

如果您需要特定的颜色,则需要为每个 dataPoint 分别设置特定的颜色 colors。例如,如果您有五个数据点,则需要有一个如下所示的 colors 数组,因此每次第一个 dataPoint 的切片为红色时,第二个 dataPoint 的切片为橙色等等

let colors: [UIColor] = [.red, .orange, .blue, .gray, .purple]
pieChartDataSet.colors = colors