2017-10-07 9 views
1

になりました。最近棒グラフが重ならないように、棒グラフに "barChartData.groupBars(fromX:0、groupSpace:0.5、barSpace:0.03)"を追加しました。iOS-Chartsのグループ化された棒グラフのサイズが

あなたの計算は以下のようになります:「tは合わせて幅を設定するためにどのようにそれを見つけ出す(no水平オーバーフローしない)

enter image description here

func setupGroupedBarChartData(values1: [String], values2: [String], barLabel1: String, barLabel2: String, barColor1: UIColor, barColor2: UIColor) -> BarChartData { 
    let dataValues1 = values1.flatMap{ Double($0) } 
    let dataValues2 = values2.flatMap{ Double($0) } 

    var dataEntries1: [BarChartDataEntry] = [] 
    var dataEntries2: [BarChartDataEntry] = [] 

    for i in 0..<dataValues1.count { 
     let dataEntry1 = BarChartDataEntry(x: Double(i), y: dataValues1[i]) 
     dataEntries1.append(dataEntry1) 

     let dataEntry2 = BarChartDataEntry(x: Double(i), y: dataValues2[i]) 
     dataEntries2.append(dataEntry2) 
    } 

    let chartDataSet1 = BarChartDataSet(values: dataEntries1, label: barLabel1) 
    chartDataSet1.colors = [barColor1] 
    chartDataSet1.valueTextColor = AppColors.lightText 
    let chartDataSet2 = BarChartDataSet(values: dataEntries2, label: barLabel2) 
    chartDataSet2.colors = [barColor2] 
    chartDataSet2.valueTextColor = AppColors.lightText 

    var groupedDataSet : [BarChartDataSet] = [BarChartDataSet]() 
    groupedDataSet.append(chartDataSet1) 
    groupedDataSet.append(chartDataSet2) 

    let barChartData = BarChartData(dataSets: groupedDataSet) 
    barChartData.groupBars(fromX: 0, groupSpace: 0.5, barSpace: 0.03) 

    //display data as integer 
    let format = NumberFormatter() 
    format.generatesDecimalNumbers = false 
    let formatter = DefaultValueFormatter(formatter: format) 
    barChartData.setValueFormatter(formatter) 


    return barChartData 
} 
+0

こんにちは、ロバート、あなたはどのライブラリを使用していますか?私は同様のものを実装しようとしています。ありがとうございました。 – Ning

答えて

2

をあなたはこのように使用することができます

あなたのコードは

barChartData.groupBars(fromX: 0, groupSpace: 0.14, barSpace: 0.03) 
barChartData.barWidth = 0.4 

barChartView.xAxis.axisMinimum = 0 
barChartView.xAxis.axisMaximum = 23 
+0

答えに感謝します。私は正しい方向にいると思う。 私のスクリーンショットを見てください。私は0(左端)から始まる12個のグループ(6個の代わりに)を持つことになっています。 https://imgur.com/ijNazSU –

+0

私は実際にそれが働くまで値を微調整することができます。本当に奇妙な... https://imgur.com/a/bdyaI barChartData.groupBars(fromX:-0.5、groupSpace:0.13、barSpace:-0.415) barChartData.barWidth = 0.41 –

関連する問題