2017-08-06 12 views
1

私はiOS Chartsライブラリを使用するのがかなり新しく、棒グラフを作成することができましたが、同じx軸値を含む一連のデータを "スタック"する方法を理解できません。iOSチャート:積み上げ棒グラフにデータを結合しましたか?

enter image description here

そしてコードは、これを達成するために:

は、ここに私の棒グラフは現在、次のようになります

私は2同じxを含むデータを結合されてやりたい何
extension MyViewController: IAxisValueFormatter 
{ 
    func stringForValue(_ value: Double, axis: AxisBase?) -> String 
    { 
     let record_ARRAY = record_ARRAY.sorted(by: {$0.date < $1.date}) 

     let date = record_ARRAY[Int(value)].date 

     return ReusableClass.typeThreeDateFormat(date: date) 
    } 
} 

var chargeDates_ARRAY = [Date]() 
var chargeCosts_ARRAY = [Double]() 

override func viewDidLoad() 
{ 
    chargeDates_ARRAY = [2017-08-05 07:00:00 +0000, 2017-08-06 07:00:00 +0000, 2017-08-06 07:00:00 +0000, 2017-08-07 07:00:00 +0000] 

    chargeCosts_ARRAY = [8.0, 3.0, 5.6600000000000001, 4.4400000000000004] 

    createBarChart(dataPoints: chargeDates_ARRAY, values: chargeCosts_ARRAY) 

    barChartView.delegate = self 
} 

func createBarChart(dataPoints: [Date], values: [Double]) 
{ 
    var dataEntries: [BarChartDataEntry] = [] 

    for index in 0..<dataPoints.count 
    { 
     let dataEntry = BarChartDataEntry(x: Double(index), 
                y: values[index]) 

     dataEntries.append(dataEntry) 
    } 

    barChartView.xAxis.valueFormatter = self 

    barChartView.xAxis.granularity = 1 

    barChartView.xAxis.setLabelCount(dataPoints.count, force: false) 

    barChartView.animate(yAxisDuration: 1.0, easingOption: .easeInOutQuad) 

    let chartDataSet = BarChartDataSet(values: dataEntries, label: "") 
    let chartData = BarChartData(dataSet: chartDataSet) 

    barChartView.data = chartData 

    barChartView.zoom(scaleX: zoomXMultiplier, scaleY: 0.0, x: 0, y: 0) 

    barChartView.barData?.barWidth = barWidthMultiplier 
} 

軸値08/06/17に積み重ねてバーを積み重ね、次のような値にします。

enter image description here

私は質問から答えを追跡しようとしました:Stacked bar chart with charts in Swift

しかし、私はどこに行くことができませんでした。

誰かが助けることができますか?ありがとう!

答えて

0

chargeCosts_ARRAY = [8.0, 3.0, 5.6600000000000001, 4.4400000000000004]chargeCosts_ARRAY = [[8.0], [3.0, 5.6600000000000001], [4.4400000000000004]]としてください。基本的にはタイプ[[Double]]()のオブジェクトを作成しようとしています。次にBarChartDataEntry(x: Double(index), y: values[index])BarChartDataEntry(x: Double(index), yValues: values[index])に変更します。ハッピーコーディング:)

関連する問題