如何在条形图中更改单个条形的颜色(取决于其值)? 例如:我的条形图中有五个不同的值(=五个不同的条形图)。值小于30的所有条形应为红色,所有条形均为30至70橙色,所有70以上的条形应为绿色。
答案 0 :(得分:9)
在ios-charts中,条形图的颜色设置在一个数组中。例如,如果您的数据集名为barChartDataset,则可以设置这样的颜色
barChartDataset.colors = [UIColor.red,UIColor.orange,UIColor.green,UIColor.black,UIColor.blue]
条形将按此顺序具有这些颜色并将重复。所以如果你有10个酒吧,你就会有2个红条等。
在您的情况下,您只需要编写一个函数来返回正确的颜色值,并将其附加到数组中。参考下面的代码。
func setColor(value: Double) -> UIColor{
if(value < 30){
return UIColor.red
}
else if(value <= 70 && value >= 30){
return UIColor.orange
}
else if(value > 70){
return UIColor.green
}
else { //In case anything goes wrong
return UIColor.black
}
}
然后,无论您在何处设置图表,都要使用
barChartDataset.colors = [setColor(barOneValue),setColor(barTwoValue),setColor(barThreeValue),setColor(barFourValue),setColor(barFiveValue)]
希望这有帮助!
答案 1 :(得分:0)
他们的API还附带了一些预定义的颜色模板,您可以使用这些模板为数据集设置不同的颜色。它们包括:
您可以这样使用它们:
chartDataSet.colors = ChartColorTemplates.colorful()
答案 2 :(得分:0)
在danielgindi图表的条形图中,可以通过以下代码从“ ChartColorTemplate.swift”文件中更改条形颜色-
@objc open class func material () -> [NSUIColor]
{
return [
NSUIColor(red: 46/255.0, green: 204/255.0, blue: 113/255.0, alpha: 1.0),
NSUIColor(red: 241/255.0, green: 196/255.0, blue: 15/255.0, alpha: 1.0),
NSUIColor(red: 231/255.0, green: 76/255.0, blue: 60/255.0, alpha: 1.0),
NSUIColor(red: 52/255.0, green: 152/255.0, blue: 219/255.0, alpha: 1.0)
]
}