我目前正在使用Charts框架在我的应用中使用折线图。我使用了下面的代码但是发生了错误。这是代码 -
`func setChart(dataPoints: [String], values: [Double]) {
var dataEntries: [ChartDataEntry] = []
for i in 0..<dataPoints.count {
let dataEntry = ChartDataEntry(x: values[i], y: Double(i))
dataEntries.append(dataEntry)
var colors: [UIColor] = []
for i in 0..<dataPoints.count {
let red = Double(arc4random_uniform(256))
let green = Double(arc4random_uniform(256))
let blue = Double(arc4random_uniform(256))
let color = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 1)
colors.append(color)
}
let lineChartDataSet = LineChartDataSet(values: dataEntries, label: "Units Sold")
let lineChartDataa = LineChartData(xVals: dataPoints, dataSet: lineChartDataSet)
Graph.data = lineChartDataa
}
`
正在发生的错误低于 -
无法为类型&#39; LineChartData&#39;调用初始值设定项使用类型&#39;(xVals:[String],dataSet:LineChartDataSet)&#39;
的参数列表
我有什么想法可以解决这个问题。
答案 0 :(得分:1)
你必须这样使用:
这是设置LineChartData
:
let lineChartDataSet = LineChartDataSet(values: dataEntries, label: "Units Sold")
let lineChartDataa = LineChartData(dataSet: lineChartDataSet)
用于设置xAxis标签:
Graph.xAxis.labelPosition = XAxis.LabelPosition.bottom
Graph.xAxis.valueFormatter = IndexAxisValueFormatter(values: dataPoints)
答案 1 :(得分:0)
LineChartData已将此声明为init。
public override init(dataSets: [IChartDataSet]?)
它的超类ChartData已声明了这些内容:
@objc public init(dataSets: [IChartDataSet]?)
@objc public convenience init(dataSet: IChartDataSet?)
看起来你正在尝试使用params的init是不可用的,因此编译错误。