2017-06-02 34 views
1

グラフには30のデータポイントがありますが、グラフのX軸は数値を分割し、データポイントごとにラベルを付けません。下記参照。iosグラフ3 - データポイントごとにX軸ラベルをプロットする

[1]:!ここhttps://i.stack.imgur.com/I1vAP.png

class TrendChartViewController: UIViewController { 
@IBOutlet var combinedChart: CombinedChartView! 
var viewModel: TrendChartViewModelProtocol! { 
    didSet { 
     updateChart() 
    } 
} 

private func updateChart() { 
    if let dataset = viewModel.dataset { 
     let data = CombinedChartData() 
     data.lineData = LineChartData(dataSets: [dataset.current, dataset.py]) 
     data.barData = getBarChartData(dataset: dataset.budget) 
     combinedChart.data = data 
     combinedChart.xAxis.valueFormatter = DateValueFormatter(timeframe: viewModel.timeframe) 
     removeGridLines() 
    } 
} 

private func getBarChartData(dataset: BarChartDataSet) -> BarChartData { 
    var barChartData = BarChartData(dataSet: dataset) 
    barChartData.barWidth = 0.45 
    return barChartData 
} 

private func removeGridLines() { 
    combinedChart.xAxis.drawGridLinesEnabled = false 
    combinedChart.leftAxis.drawGridLinesEnabled = false 
    combinedChart.rightAxis.drawGridLinesEnabled = false 
    combinedChart.drawGridBackgroundEnabled = false 
} 

は、どのように私はそれがデータごとにX軸ラベルの値を表示するために取得することができ、私たちのデータセットの1 ...

private func getCurrentDataSet() -> LineChartDataSet { 
    let values = timeframe == .days ? report?.charts[0].data.days : report?.charts[0].data.months 
    let currentEntries: [ChartDataEntry] = values? 
     .enumerated() 
     .flatMap { 
      return ChartDataEntry(x: Double($0), y: $1.current[unit.rawValue] ?? 0) 
     } ?? [] 

    let currentDataSet = LineChartDataSet(values: currentEntries, label: NSLocalizedString("Current", comment: "")) 
    let color = UIColor.Bridgestone.forest.B500 
    currentDataSet.setColor(color) 
    currentDataSet.circleColors = [color] 
    currentDataSet.circleHoleColor = color 
    currentDataSet.circleRadius = 5 
    currentDataSet.lineWidth = 2.5 
    return currentDataSet 
} 

の一例ですポイント?ありがとう!

答えて

0

xAxisのラベル数を設定する場合は、func xAxis.setLabelCountを使用する必要があります。

combinedChart.xAxis.setLabelCount(countOfMyDataPoints, force: true) 
+0

感謝の男が、これは働いていました! –

関連する問題