2016-02-15 151 views
3

我有一個BarChartView 31條,因此31標籤。我添加所有內容並根據示例進行設置,它的工作原理與此相同 - 除了BarChartView僅顯示每個第3個標籤。所以我嘗試打印出1,2,3,4,5,6,...,30,31,但它可以打印1,4,7,11,...,31。我怎樣才能改變呢?我甚至不需要打印所有標籤,我真正需要的是第一個和最後一個標籤,所以1和31,但我不能在我的生活中弄清楚如何設置它。BarChartView x軸標籤不顯示所有標籤

我已經試過了,是不是第一個或最後每一小節的標籤設置爲nil,但是,這並不無論做任何事情。我相信它打印每個第三個標籤的原因是因爲它不能完全適合它們,對嗎?我對BarChartView設置是:

barChartView.descriptionText = "" 
    barChartView.noDataTextDescription = "" 
    barChartView.drawGridBackgroundEnabled = false 
    barChartView.xAxis.drawAxisLineEnabled = false 
    barChartView.xAxis.drawGridLinesEnabled = false 
    barChartView.xAxis.drawLabelsEnabled = true 
    barChartView.drawBordersEnabled = false 
    barChartView.leftAxis.enabled = false 
    barChartView.rightAxis.enabled = false 
    barChartView.legend.enabled = false 
    barChartView.xAxis.labelPosition = .Bottom 
    barChartView.xAxis.labelTextColor = UIColor.whiteColor() 
    barChartView.xAxis.labelFont = UIFont(name: timesNewRoman, size: barChartView.xAxis.labelFont.pointSize)! 
    barChartView.dragEnabled = false 
    barChartView.highlightEnabled = false 
    barChartView.scaleXEnabled = false 
    barChartView.scaleYEnabled = false 

,我添加xValues這樣的:

for (index, value) in plotData.enumerate() { 
     var xValue: String? 
     xValue = index == 0 || index == plotData.count-1 ? "\(index + 1)" : nil 


     barChartData.addXValue(xValue) 
     let dataEntry = BarChartDataEntry(value: Double(value), xIndex: index) 

     dataEntries.append(dataEntry) 
} 

回答

6

所以,對x軸,有axisLabelModulusAxisModulusCustom顯示x軸標籤時控制模量。

默認情況下,它會自動計算。

public var axisLabelModulus = Int(1) 
/// Is axisLabelModulus a custom value or auto calculated? If false, then it's auto, if true, then custom. 
/// 
/// **default**: false (automatic modulus) 
private var _isAxisModulusCustom = false 

可以使用setLabelsToSkip()設置多少標籤被跳過。

/// Sets the number of labels that should be skipped on the axis before the next label is drawn. 
/// This will disable the feature that automatically calculates an adequate space between the axis labels and set the number of labels to be skipped to the fixed number provided by this method. 
/// Call `resetLabelsToSkip(...)` to re-enable automatic calculation. 
public func setLabelsToSkip(count: Int) 
+0

謝謝,我解決了這個問題! – ClockWise

+0

@Wingzero在哪個版本的庫中包含此功能? –

+0

@AbdulRehmanWarraich 2.X. 3.0不同的是 – Wingzero

6

pod 'Charts', '~> 3.0' 

使用本:

public func setLabelCount(count: Int, force: Bool) 
+1

要顯示所有設置爲您的數據點數的標籤。您可以輸入像'9999999'這樣的高數字,並且每個數據點都會使用一個標籤。但是,如果你有分組集合,並且你想要每個集合有一個標籤,這是行不通的。是否有一種簡單的方法,像舊的方式來做到這一點,或每次我的數據改變時更新標籤數量是唯一的方法? –