2016-10-25 66 views
0

我想專門顯示我有數據在x軸上的點。如下面的例子所示,我只獲得零點數據,但也顯示-1和1。我怎樣才能擺脫它們?在IOS圖表x軸獲取正確的間隔

enter image description here

func setChart(_ xValues: [String], yValuesLineChart: [Double], yValuesBarChart: [Double]) { 


    var yVals1 : [ChartDataEntry] = [ChartDataEntry]() 
    var yVals2 : [BarChartDataEntry] = [BarChartDataEntry]() 


    for i in 0..<xValues.count { 
     yVals1.append(ChartDataEntry(x: Double(i), y: yValuesLineChart[i])) 
     yVals2.append(BarChartDataEntry(x: Double(i), y: yValuesBarChart[i])) 
    } 


    let lineChartSet = LineChartDataSet(values: yVals1, label: "") 
    let barChartSet: BarChartDataSet = BarChartDataSet(values: yVals2, label: "") 

    combinedChartView.drawBarShadowEnabled = false 

    let data = CombinedChartData() 

    data.barData = BarChartData(dataSet: barChartSet) 
    data.lineData = LineChartData(dataSet: lineChartSet) 


    combinedChartView.xAxis.granularityEnabled = true 
    combinedChartView.xAxis.granularity = 1.0 
    combinedChartView.xAxis.decimals = 0 


    combinedChartView.leftAxis.axisMinimum = 0 
    combinedChartView.rightAxis.axisMinimum = 0 


    combinedChartView.chartDescription?.text = "" 
    combinedChartView.drawGridBackgroundEnabled = false 

    combinedChartView.xAxis.labelPosition = .bottom 

    combinedChartView.leftAxis.drawGridLinesEnabled = false 
    combinedChartView.rightAxis.drawGridLinesEnabled = false 
    combinedChartView.xAxis.drawGridLinesEnabled = false 


    combinedChartView.leftAxis.drawZeroLineEnabled = false 
    combinedChartView.rightAxis.drawZeroLineEnabled = false 


    barChartSet.axisDependency = .right 
    lineChartSet.axisDependency = .left 


    combinedChartView.rightAxis.axisMaximum = barChartSet.yMax*1.4 
    combinedChartView.leftAxis.axisMaximum = lineChartSet.yMax*1.2 


    combinedChartView.data = data 
    combinedChartView.animate(xAxisDuration: 2.0, yAxisDuration: 2.0, easingOption: .easeInCubic) 


} 

回答

0

寫你的ViewController的擴展,如果你沒有任何價值,這將只是顯示一個空字符串。

extension YourChartViewController:IAxisValueFormatter { 
    func stringForValue(_ value: Double, axis: AxisBase?) -> String { 
     if value == 0.0 
      return "" 
     } else { 
      return String(Int(value)) 
     } 
    } 
}