繁体   English   中英

为图表生成 Colors 的梯度

[英]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))
}

它会生成这个: 饼图的坏例子

我希望图表中的 colors 更像这样:(对不起,我只是在谷歌表格中快速制作了它作为示例) 好的饼图

有任何想法吗?

试试这个解决方案。

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 等。

您可能想要使用不同的颜色 model(如 HSB),并在 colors 之间更改其中的一个或多个设置。 在您的情况下,您似乎正在使用亮紫色并希望将饱和度从 100% 更改为 0%。

然后,您可以使用 UIColor 初始化程序init(hue:saturation:brightness:alpha:)创建 colors

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM