2017-01-10 70 views
0

我在實施條形圖,並設法分配數據和標籤。但是,當我加載條形圖時,它只顯示我的標籤的3/7,我不知道爲什麼。如何格式化xAxis標籤iOS圖表

當我與圖表互動時,標籤顯示出來,但它們會出現毛刺。

對不起,如果我沒有解釋好自己,但我上傳了一個.gif顯示我的問題。

我真的需要一些關於xAxis上標籤格式的幫助。這將非常感激。

在此先感謝。

gif of problem

回答

0

我認爲你已經使用這個庫(https://github.com/danielgindi/Charts)......我一直在使用圖表的委託方法設置X軸

func ChartView() 
{ 
    xAxis.drawGridLinesEnabled = false 
    xAxis.drawLabelsEnabled = true 
    xAxis.labelPosition = .Bottom 
    xAxis.axisMinimum = 0.0 
    xAxis.labelCount = ITEM_COUNT 
    xAxis.granularity = 1.0 
    xAxis.valueFormatter = self 

    self.updateChartData() 
} 

func updateChartData() 
{ 
    self.chartView.data = nil 
    self.setChartData() 
} 


func generateLineData() -> LineChartData 
{ 

    let d = LineChartData() 
    let entries = NSMutableArray() 
    var weightstr = String() 
    var datestr = String() 
entries.addObject(ChartDataEntry(x: Double(index), y: (Double(dic[setvalue]as! String)!))) 
let set = LineChartDataSet(values: entries as? [ChartDataEntry] , label: "X-title") 
    set.setColor(colorWithHexString("#FE1643")) 
    set.lineWidth = 2.5 
    set.setCircleColor(UIColor.whiteColor()) 
    set.circleHoleColor = NSUIColor.greenColor() 
    set.circleRadius = 5.0 
    set.circleHoleRadius = 2.5 
    set.fillColor = UIColor.redColor() 
    set.mode = .HorizontalBezier 
    set.valueTextColor = UIColor.lightGrayColor() 
    set.drawValuesEnabled = true 
    set.valueFont = UIFont(name: "Exo-Regular", size: FOntSIZE(10.0))! 
    set.axisDependency = .Left 
    d.addDataSet(set) 
    return d 
} 

func setChartData() 
    { 
     let data = CombinedChartData() 
     data.lineData = self.generateLineData() 
     self.chartView.xAxis.axisMaximum = Double(months.count)-1 
     self.chartView.data = data 
    } 

func chartValueSelected(chartView: ChartViewBase, entry: ChartDataEntry, highlight: Highlight) 
    { 
     print("chartValueSelected") 
    } 

func chartValueNothingSelected(chartView: ChartViewBase) 
{ 
    print("chartValueNothingSelected") 
} 

func stringForValue(value: Double, axis: AxisBase?) -> String 
{ 
    return months[Int(round(value)) % months.count] as! String 
} 
+0

我嘗試使用'stringForValue'方法,但它給了我和以前一樣的結果 – Kasper

+0

我會調試傳遞給stringForValue()的值。根據我的經驗,圖表庫將自行「選擇」要求格式化的值。因此,如果圖表的x值爲1,2,3,4,5,則可以在stringForValue()中放入一個簡單的打印(值),以驗證所有這些值的格式。 – Alex

+0

@Alex我測試了'print(value)'方法,並且它打印出'0,1.0,2.0 3.0,4.0,5.0,6.0,7.0' 認爲我弄錯了,因爲我的標籤數組是'let labels:[String ] =「m」,「t」,「w」,「thu」,「fri」,「sat」,「sun」 – Kasper