【发布时间】:2015-10-17 18:24:40
【问题描述】:
我正在尝试从 ios-charts 库中实现饼图,一切正常,但是我缺少图表中的图例 -
这是我的代码 -
// 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 中看到了类似的问题并构建并运行,问题中使用的饼图也没有在图表下方显示任何图例。任何帮助或指针将不胜感激。
谢谢
【问题讨论】:
-
你有什么改变吗?似乎传说正在出现,但被某种东西掩盖了。您可以先调试图例。顺便说一句,尝试使用 ChartsDemo 和您的数据重现这一点。如果 ChartsDemo 工作正常,那么你定义改变了一些东西
-
我没有改变任何东西,图例也没有被某些东西掩盖,因为当我打印“pieChartView.legend.labels”时,我得到空数组 [],这意味着图例数据丢失了我是因为来自同一数据源或数据集的其他数据可用,即月份和日期。为什么只缺少图例标签?我已经提供了用于提供实际问题数据的方法。
-
尝试用 ChartsDemo 重现
-
我尝试使用图表演示数据重新生成它,如下所示 - 月 =
["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] let unitsSold = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0, 4.0, 18.0, 2.0, 4.0, 5.0, 4.0] setChart(months, values: unitsSold)它适用于静态数组数据,但当我动态获取数据时失败。 -
动态是什么意思?
标签: ios swift2 ios9 ios-charts