Как установить разные цвета для точек на LineChart на диаграммах ios?

Мне нужно закрасить значения в одном диапазоне в желтый цвет, а в другом - в красный. Как это реализовать?


person Vassily    schedule 23.05.2016    source источник


Ответы (1)


Есть гораздо более простой способ раскрасить круги по-другому. Вот пример, который окрашивает каждый круг случайным цветом. Но вы также можете подумать об условной окраске, например, об окраске каждого круга красным цветом, значение y которого больше 10, или о любом другом условии.

var yValues: [ChartDataEntry] = []           // y-values
var xValues: [String?] = []                  // x-values
var set: LineChartDataSet                    // value set (x- and y-values)
var circleColors: [NSUIColor] = []           // arrays with circle color definitions

for i in 0..< xValues.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)
    circleColors.append(color)
}

// set colors and enable value drawing    
set.colors = circleColors
set.drawValuesEnabled = true
set.valueFont = UIFont.systemFontOfSize(12.0)
person Morpheus78    schedule 29.05.2016
comment
Спасибо, Morpheus78! Во-первых, я не мог установить свойство цветов напрямую, потому что компилятор выдал мне ошибку, сказав, что это свойство только для получения. Итак, вместо этого я использовал свойство set.circleColors, и оно работало как шарм. - person Nahuel Roldan; 13.09.2016
comment
@ Науэль Ролдан, ты прав. В одном из последних выпусков было изменение API диаграмм. - person Morpheus78; 14.08.2018