如何在barChart / swift中将Double值更改为String?

时间:2016-07-07 16:47:13

标签: ios swift graph charts

我希望为每个值显示一个字符串,而不是在我的图表中显示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

    }
}

2 个答案:

答案 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
      }
}