iOS swift3 Chart xaxis重复值问题

标签 ios charts swift3 ios-charts

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

x值总是有重复值,看下图,你可以看到值总是JAN JAN JAN JAN FEB FEB FEB

我如何设置图表的 x 值,因为它将显示 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
}
}

enter image description here

最佳答案

首先,使用粒度 来避免重复值。 其次,如果您发现它们的值非常不同,请检查您的 valueFormatter 不要返回相同的字符串。例如int(1.5)int(1.9) 会给你相同的 Jan 但你可能想让 1.9 返回二月

同样,如果要处理小数,则必须仔细实现自己的 valueFormatter

关于iOS swift3 Chart xaxis重复值问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45665965/

相关文章:

ios - 迪尔德 : Library not loaded error in Swift - IQKeyboardManagerSwift

ios - 如何在swift项目中集成PayUMoney iOS SDK

ios - UITableView 没有出现在我的 UITableview 的 cell.contentView 中

javascript - Google Charts 将 URI 发送到 ajax

ios - iPad 模拟器正常但 iPad 在使用 WKWebview 上传图像时崩溃应用程序

ios - 自定义 View 中的图像不会实时渲染

ios - 从 firebase 加载图像并缓存 swift3

ios - Swift UITableView 表页脚随键盘向上移动

javascript - Vega 图表 - 如何使图表响应

javascript - amCharts - 通过 HTML 元素或 id 获取图表对象?