我有一个使用 Daniel Gindi iOS-charts 构建的条形图.它表示一段时间内的历史数据。我遇到的问题是数据是从左到右绘制的(新数据 -> 旧数据)。我需要将其绘制为从右到左(旧数据 -> 新数据)。我知道我可以颠倒我将数据输入到 BarChartData
中的顺序,但是我遇到了图表仍然左对齐的问题。它需要右对齐。我发现了一个讨论here谈论反转 x 轴的问题以及如何解决它(目前不是框架的包含功能),但是我无法弄清楚实际需要做什么。以下是我需要的示例:
这是我的图表目前的样子:
这是我需要的样子:
我的问题
有没有办法反转x轴?
或
有没有办法让图表右对齐?
这是我的一些代码并尝试解决该问题:
class ViewController: UIViewController {
@IBOutlet weak var barChartView: BarChartView!
//...
func plotChart() {
// Create history data
//...
barChartView.data = chartData // 'chartData' is the BarChartData() containing all of the history information
// No efect
barChartView.legend.direction = .RightToLeft
// Chart breaks
barChartView.leftAxis.axisMinValue = 30
barChartView.leftAxis.axisMaxValue = 0
// Breaks the ability to zoom
barChartView.setVisibleXRangeMinimum(CGFloat(40))
barChartView.setVisibleXRangeMaximum(CGFloat(1))
}
}
最佳答案
这个库不支持直接从右到左对齐。
引用 - https://github.com/danielgindi/Charts/issues/738
你必须在库级别实现一些东西才能让它从右到左对齐。
编辑后的答案
经过一番努力,我找到了解决方案,希望这对您有所帮助。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var barChartView: BarChartView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let months = ["7/23/2016", "7/22/2016", "7/21/2016", "7/20/2016", "7/19/2016", "7/18/2016", "7/17/2016"]
let unitsSold = [0.0, 0.0, 0.0, 0.0, 20.0, 50.0, 30.0]
setChart(months, values: unitsSold)
}
func setChart(dataPoints: [String], values: [Double]) {
var dataEntries: [BarChartDataEntry] = []
for i in 0..<dataPoints.count {
if !values[i].isZero {
let dataEntry = BarChartDataEntry(value: values[i], xIndex: i)
dataEntries.append(dataEntry)
}
}
let chartDataSet = BarChartDataSet(yVals: dataEntries, label: "")
let chartData = BarChartData(xVals: dataPoints, dataSet: chartDataSet)
barChartView.data = chartData
barChartView.leftAxis.enabled = false
barChartView.descriptionText = ""
barChartView.xAxis.labelPosition = .Bottom
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
关于iOS图表反转X轴方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38474766/