iOS swift3图表xaxis重复值问题 [英] iOS swift3 Chart xaxis duplicate value issue

查看:79
本文介绍了iOS swift3图表xaxis重复值问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在使用iOS图表库为xAxis创建字符串值时遇到问题

I have an issue creating a string value for xAxis using the iOS Charts library

x值始终具有重复值,请参见下图,您可以看到值始终为 JAN JAN JAN JAN FEB FEB FEB

x value always has duplicate value, see following picture, you can see value always be JAN JAN JAN JAN FEB FEB FEB

如何设置图表的x值,因为它将显示 JAN FEB MAR ?

How I can setup chart's x value as it will show JAN FEB MAR ?

import UIKit
import Charts
class ViewController: UIViewController {
var months:[String]!
@IBOutlet var lineChartView: LineChartView!

override func viewDidLoad() {
super.viewDidLoad()


let unitsSold = [20.0, 4.0, 6.0]

var months = ["Jan", "Feb", "Mar"]

let formato:LineChartFormatter = LineChartFormatter(labels: months)
let xaxis:XAxis = XAxis()

var dataEntries: [ChartDataEntry] = []

for i in 0..<unitsSold.count {
let dataEntry = ChartDataEntry(x: Double(i), y: unitsSold[i])

print("double \(Double(i))")
dataEntries.append(dataEntry)
}

xaxis.valueFormatter = formato
let data = LineChartData()
let dataset = LineChartDataSet(values: dataEntries, label: "Hello")
dataset.colors = [NSUIColor.red]
data.addDataSet(dataset)


self.lineChartView.gridBackgroundColor = NSUIColor.white
self.lineChartView.xAxis.drawGridLinesEnabled = true;
self.lineChartView.xAxis.labelPosition = XAxis.LabelPosition.bottom
self.lineChartView.xAxis.centerAxisLabelsEnabled = true
self.lineChartView.chartDescription?.text = "LineChartView Example"
self.lineChartView.xAxis.valueFormatter = xaxis.valueFormatter
self.lineChartView.data = data
}

override open func viewWillAppear(_ animated: Bool) {
self.lineChartView.animate(xAxisDuration: 1.0, yAxisDuration: 1.0)
}
}

@objc(LineChartFormatter)
public class LineChartFormatter: NSObject, IAxisValueFormatter{
var labels: [String] = []

public func stringForValue(_ value: Double, axis: AxisBase?) -> String {
return labels[Int(value)]
}

init(labels: [String]) {
super.init()
self.labels = labels
}
}

推荐答案

在代码中添加这两行

lineChartView.xAxis.granularityEnabled = true
            lineChartView.xAxis.granularity = 1.0

这篇关于iOS swift3图表xaxis重复值问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆