我正在使用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
显示为SomeType...
的参数表示它是一个可变参数。这意味着您可以传递给定类型的0个或多个参数。但它们需要以逗号分隔值的形式传递,而不是作为数组传递。
lineChartDataSet.setCircleColors(NSUIColor.red, NSUIColor.green, NSUIColor.whatever)
无需添加或尝试可变参数。还有一个变量lineChartDataSet.circleColors
,你可以设置[NSUIColor]
任何不。颜色可以在这里设置。我已经尝试过lineChartDataSet.setCircleColors
,但是当你的图表增长时它会更复杂。我正在使用swift 3版本。
let arr: [NSUIColor] = [UIColor.red, UIColor.green, UIColor.yellow]
lineChartDataSet.circleColors = arr
这个逻辑对我很有用。