我正在使用danielgindi/Charts swift框架。我想像这样使用带有目标线的线图;
let ll = ChartLimitLine(limit: 6.5, label: "Average")
lineChartView.rightAxis.addLimitLine(ll)
它绘制目标,但我想改变目标上方和下方的颜色。我认为我应该使用这个功能;
open func setCircleColors(_ colors: NSUIColor...){
circleColors.removeAll(keepingCapacity: false)
circleColors.append(contentsOf: colors)
}
我该如何使用它?什么意味着NSUIColor ... 它是哪种类型的?我尝试发送一个NSUIColor数组,但这是一个错误? 我怎么能这样做?
我所有的线图代码;
let lineChartDataSet = LineChartDataSet(values: lineDataEntries, label: "price")
var datasets=[IChartDataSet]()
datasets.append(lineChartDataSet)
let linechartdata=LineChartData(dataSets:datasets)
lineChartView.animate(xAxisDuration: 2.0, yAxisDuration: 2.0, easingOption:.easeInElastic)
lineChartDataSet.colors = ChartColorTemplates.colorful()
var colorArray: [NSUIColor] = []
for data in lineChartDataSet.values{
if data.y > 6.5{
colorArray.append(NSUIColor.red)
//lineChartDataSet.setCircleColor(NSUIColor.red)
}else{
colorArray.append(NSUIColor.green)
//lineChartDataSet.setCircleColor(NSUIColor.green)
}
}
lineChartDataSet.setCircleColors(colorArray)
let ll = ChartLimitLine(limit: 6.5, label: "Average")
lineChartView.rightAxis.addLimitLine(ll)
lineChartView.data=linechartdata
答案 0 :(得分:1)
显示为SomeType...
的参数表示它是一个可变参数。这意味着您可以传递给定类型的0个或多个参数。但是它们需要以逗号分隔的值传递,而不是作为数组传递。
lineChartDataSet.setCircleColors(NSUIColor.red, NSUIColor.green, NSUIColor.whatever)
答案 1 :(得分:1)
无需添加或尝试可变参数。还有一个变量[.S]
,您可以在其中设置lineChartDataSet.circleColors
任何号码。颜色可以在这里设置。我试过[NSUIColor]
,但是当图表增长时它会更复杂。我正在使用swift 3版本。
lineChartDataSet.setCircleColors
这个逻辑对我很有用。