2017-06-02 93 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 
} 

這裏是我們的數據集的一個示例...

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 
} 

所以,我怎樣才能得到它顯示每個數據X軸標籤值點?謝謝!

回答

0

如果您想設置xAxis上的標籤數量,您需要使用func xAxis.setLabelCount。

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

謝謝你,這工作! –