我正在使用 iOSCharts for swift by @danielgindi https://github.com/danielgindi/Charts
这是我的数据集
let dateArray = [26,27,28,29,30,01,02]
let values = [11.0,5.0,0.0,0.0,4.0,1.0,0.0]
var dataEntries: [BarChartDataEntry] = []
for i in 0..<dateArray.count {
let dataEntry = BarChartDataEntry(x: Double(i), y: values[i])
dataEntries.append(dataEntry)
}
let data = BarChartData()
let ds1 = BarChartDataSet(values: dataEntries, label: "Hello")
ds1.colors = [NSUIColor.red]
data.addDataSet(ds1)
self.barChartView.data = data
self.barChartView.fitBars = true
self.barChartView.gridBackgroundColor = NSUIColor.white
self.barChartView.chartDescription?.text = ""
但我得到的是这个
所以你可以看到下面的问题
1) 图形从上面的一个网格开始,你会看到底部的空间 2) xaxis 标签不同,我不知道如何设置它们。 3) 我想将 x 轴和 y 轴标签显示为 int 而不是 double。
最佳答案
查看 ChartsDemo 项目中 BarchartViewController
的主版本,它实现了您的两个问题:
1) 左轴对齐,参见:
具体来说,您想要在左侧轴上设置 axisMinimum,对于您的示例,它是:
self.barChartView.leftAxis.axisMinimum = 0.0
2) X 轴值格式化。
这个有点棘手。您可以从 ChartsDemo 借用 DayAxisValueFormatter,但那是 Objective-C 代码,因此您需要熟悉如何将 Objective-C 添加到您的项目。
您还可以通过将 View Controller 设为 IAxisValueFormatter 并像这样实现来获得您所要求的:
class MyViewController: UIViewController, IAxisValueFormatter {
var dateArray: [Int] = [26,27,28,29,30,01,02] //member variable
func stringForValue(_ value: Double, axis: AxisBase?) -> String {
return dateArray[i]
}
//edit: forgot to say this earlier, you need to do this somewhere in your bar graph setup code
self.barChwrtView.xAxis.formatter = self
}
无论何时更新图表,您都可以让 dateArray 和值保持同步。
关于ios - iOS 图表库的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39817831/