2016-11-05 7 views
3

棒グラフの値に応じて、どのようにして1つの棒の色を変更できますか? 例:私は棒グラフに5つの異なる値(= 5つの異なる棒)を持っています。値が30未満のバーはすべて赤色で、すべてのバーが30〜70オレンジで、すべてのバーが緑色でなければなりません。BarChartのバーの色は値によって異なります

答えて

4

は、バーの色は、アレイに設定されています。あなたのデータセットが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()

このように使用できます。

chartDataSet.colors = ChartColorTemplates.colorful() 

リファレンス:IOS-チャートにhttps://www.appcoda.com/ios-charts-api-tutorial/

+0

シングルバーの値を変更するにはどうすればよいですか?例えば、最初のものは緑、もう1つは赤、など...? – OSX55

+0

回答を修正しました – Munahil

関連する問題