2015-10-17 180 views
4

我想实现从IOS-图表饼图库的一切是伟大的工作,但是我缺少从图中的传说 -IOS-图表饼图的标签(传说)丢失

enter image description here

这里是我的代码 -

// This is the delegate method for creating data for chart 
     func offDaysDidLoaded(controller: DataModel,chartArray:[PFObject]) { 


       let formatter = NSDateFormatter() 
       formatter.dateFormat = "MMM" 
       dataDict = [:] 
       for od in chartArray { 
        let date = od["Date"] as! NSDate 
        let month = formatter.stringFromDate(date) 
        if self.dateDict.indexForKey(month) != nil { 
         self.dateDict[month]! += 1.0 
        }else{ 
         self.dateDict.updateValue(1.0, forKey: month) 
        } 
       } 
       let dataPointArray = Array(dateDict.keys) 
       let valuesArray = Array(dateDict.values) 
       pieChartView.data = nil 
       pieChartView.backgroundColor = UIColor.grayColor() 
       setChart(dataPointArray, values: valuesArray) 
      } 


func setChart(dataPoints: [String], values: [Double]) { 
    var dataEntries: [ChartDataEntry] = [] 
    for i in 0..<dataPoints.count { 

     let dataEntry = ChartDataEntry(value: values[i], xIndex: i) 
     dataEntries.append(dataEntry) 
    } 

    let pieChartDataSet = PieChartDataSet(yVals: dataEntries, label: "Months") 

    let pieChartData = PieChartData(xVals: dataPoints, dataSet: pieChartDataSet) 
    pieChartData.setDrawValues(false) 
    pieChartView.data = pieChartData 
    pieChartView.animate(xAxisDuration: NSTimeInterval(5)) 

    var colors: [UIColor] = [] 

    for _ in 0..<dataPoints.count { 
     let red = Double(arc4random_uniform(256)) 
     let green = Double(arc4random_uniform(256)) 
     let blue = Double(arc4random_uniform(256)) 

     let color = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 1) 
     colors.append(color) 
    } 

    pieChartDataSet.colors = colors 

} 

我在here见过类似的问题,并建立和运行,在问题中使用也没有显示在图表下方的任何图例饼图。任何帮助或指针将非常感激。

感谢

+0

你有什么改变吗?似乎传说正在显现,但被某种东西掩盖了。您可以先调试图例。顺便说一句,尝试用ChartsDemo和你的数据重现这一点。如果ChartsDemo正常工作,那么你def改变了一些东西 – Wingzero

+0

我没有改变任何东西,传说并没有被某些东西掩盖,因为当我打印“pieChartView.legend.labels”时,我得到空数组[],这意味着传说数据是错过了我,因为来自同一个数据源或数据集的其他数据可用,即月份和日期。为什么只有传奇标签失踪?我提供了我用于提供实际问题数据的方法。 –

+0

尝试使用ChartsDemo重现 – Wingzero

回答

5

最后这个问题解决了,它不是bug。请找到详细的解决方案here

2

我只是做了尝试ChatsDemo与

legend.position = ChartLegendPositionBelowChartLeft;

工作正常。所以无论你的数据问题,还是你修改了一些东西。你不显示你如何设置x值。提供更多细节或自行调试。应该很容易

+0

谢谢我会试试更新。 –