2017-06-02 94 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

谢谢你,这工作! –