2016-11-05 92 views
3

如何在條形圖中更改單個酒吧的顏色(取決於其值)?例如:我的條形圖中有五個不同的值(=五個不同的小節)。所有小於30的酒吧應該是紅色的,所有酒吧在30到70之間的橙色,並且所有70以上的酒吧應該是綠色的。BarChart中酒吧的不同顏色取決於值

回答

4

在IOS-圖表,杆的顏色陣列中的被設置。如果數據集被稱爲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)] 

希望這有助於!

+0

非常感謝!節省我的時間! –

+0

通過使用上面的函數它可以工作,但它顯示圖表下面的指標中重複的顏色......應該如何處理紅色是低值,綠色是高值。 – Antony

+0

你能添加一個圖像來表明你指的是什麼意思嗎? –

0

他們的API還附帶一些預定義的顏色模板,您可以使用它們爲數據集設置不同的顏色。它們包括:

  • ChartColorTemplates.liberty()
  • ChartColorTemplates.joyful()
  • ChartColorTemplates.pastel()
  • ChartColorTemplates.colorful()
  • ChartColorTemplates.vordiplom()
你可以用這種方式使用它們:

參考:https://www.appcoda.com/ios-charts-api-tutorial/

+0

如何更改單個欄的值?例如第一個是綠色的,第二個是紅色的,等等......? – OSX55

+0

我修改了答案 – Munahil

相關問題