为图表生成颜色渐变

Generate Gradient of Colors for chart

我正在制作一个小饼图,我希望饼图切片越小,图表中的每个条目越浅。我必须生成一个 UIColor 数组来为图表着色。

这是我现在拥有的:

for i in 0..<entries.count {
    let percent = 1.0 - (CGFloat(i - 1)/CGFloat(entries.count))
    dataSet.colors.append(UIColor.systemPurple.withAlphaComponent(percent))
}

它生成了这个:

我希望图表中的颜色更像这样:(抱歉,我只是快速在 google 张中做了一个例子)

有什么想法吗?

试试这个解决方案。

var initialAlpha = 1.0

for i in 0..<entries.count { 
    dataSet.colors.append(UIColor.systemPurple.withAlphaComponent(initialAlpha))
    initialAlpha -= 0.1
}

您也可以根据您的要求将差值 0.1 更改为任何分数值,比如 0.15 或 0.2 等。

您可能想要使用不同的颜色模型(如 HSB),并在颜色之间改变其中的一个或多个设置。在您的情况下,看起来您使用的是亮紫色并且想要将饱和度从 100% 更改为 0%。

然后您可以使用 UIColor 初始值设定项创建颜色 init(hue:saturation:brightness:alpha:)

稍加修改,色调为 300、亮度为 100%、饱和度值为 100%、80%、60%、40%、20% 和 0% 的颜色看起来不错。