我希望为每个值显示一个字符串,而不是在我的图表中显示Double值。我仍然希望图表从Double值中绘制,但我希望标签显示带有日期的字符串。这该怎么做?
我正在使用Daniel Cohen Gindis库。
Here is the code for my graph:
import UIKit
import Charts
class ViewController: UIViewController {
@IBOutlet var barChartView: BarChartView!
override func viewDidLoad() {
super.viewDidLoad()
//x line values
let tools = ["Saw","Sissor","Axe"
,"Hammer","Tray"]
//y line values
let values = [1.0,2.0,3.0,4.0,5.0]
setChart(tools, values: values, colors: colors)
}
func setChart(xAxisLabels: [String], values: [Double], colors: [UIColor]){
var dataEntries : [BarChartDataEntry] = []
for i in 0..<xAxisLabels.count {
let dataEntry = BarChartDataEntry(value: values[i], xIndex: i )
dataEntries.append(dataEntry)
}
barChartView.leftAxis.axisMinValue = 0.0
barChartView.leftAxis.axisMaxValue = 14.0
barChartView.data = chartData
}
}
答案 0 :(得分:0)
您可以使用String()方法将任何数据类型转换为字符串。
例如:
var myDouble: Double = 1.5
print(String(myDouble)) // Prints "1.5"
答案 1 :(得分:0)
我不知道您是否仍然需要答案,但这可能会帮助遇到相同问题的人:)
首先,您需要为xAxis创建ValueFormatter类。
xAxis.valueFormatter = XAxisValueFormatter()
然后必须在新类中添加以下内容:
class XAxisValueFormatter: NSObject, IAxisValueFormatter {
func stringForValue(_ value: Double, axis: AxisBase?) -> String {
let dateFormatterPrint = DateFormatter()
dateFormatterPrint.dateFormat = "HH:mm:ss"
let date = Date(timeIntervalSince1970: value)
let time = dateFormatterPrint.string(from: date)
return time
}
}