如何将折线图数据集设置为在加载时禁用
我正在使用图表框架(danielgindi / Charts)。
我想要一个lineChartView,其中包含3种不同的Data,可以使用按钮隐藏或显示它们。
例如已敲击button1将在lineChartView上显示/不显示,但仍显示其他2种不同的数据。
class ViewController: UIViewController {
@IBOutlet weak var chartView: LineChartView!
var limitSet1 : ChartLimitLine?
var limitSet2 : ChartLimitLine?
var limitSet3 : ChartLimitLine?
var limitLineArray : [Double] = []
func removeLimitLines() {
switch (limitLineArray.count) {
case 1: print("there was 1 limit line,need to remove this from chart view")
chartView.rightAxis.removeLimitLine(limitSet1!)
case 2: print("there was 2 limit line,need to remove this from chart view")
chartView.rightAxis.removeLimitLine(limitSet1!)
chartView.rightAxis.removeLimitLine(limitSet2!)
case 3: print("there was 3 limit line,need to remove this from chart view")
chartView.rightAxis.removeLimitLine(limitSet1!)
chartView.rightAxis.removeLimitLine(limitSet2!)
chartView.rightAxis.removeLimitLine(limitSet3!)
default:
break
}
}
func setChart(xValues: [String],valuesLineChart: [[Double]],limitLines: [Double]) {
// chartView.descriptionText = ""
chartView.noDataText = "You need to provide data for the chart."
print("valuesLineChart has \(valuesLineChart.count) lines")
var dataSets : [LineChartdataset] = [LineChartdataset]()
switch valuesLineChart.count {
case 1 : print("1 within switch")
var yVals1 : [ChartDataEntry] = [ChartDataEntry]()
for i in 0..<xValues.count {
yVals1.append(ChartDataEntry(x: valuesLineChart[0][i],y: Double(i)))
}
let set1 = LineChartdataset(entries: yVals1,label: nil)
dataSets.append(set1)
//limit lines
limitSet1 = ChartLimitLine(limit: limitLines[0],label: "switch1,limit1")
chartView.rightAxis.addLimitLine(limitSet1!)
case 2 :print("2 within switch")
var yVals1 : [ChartDataEntry] = [ChartDataEntry]()
for i in 0..<xValues.count {
yVals1.append(ChartDataEntry(x: valuesLineChart[0][i],y: Double(i)))
}
var yVals2 : [ChartDataEntry] = [ChartDataEntry]()
for i in 0..<xValues.count {
yVals2.append(ChartDataEntry(x: valuesLineChart[1][i],label: nil)
let set2 = LineChartdataset(entries: yVals2,label: nil)
dataSets.append(set1)
dataSets.append(set2)
//limit lines
limitSet1 = ChartLimitLine(limit: limitLines[0],label: "")
limitSet2 = ChartLimitLine(limit: limitLines[1],label: "")
chartView.rightAxis.addLimitLine(limitSet1!)
chartView.rightAxis.addLimitLine(limitSet2!)
case 3 :print("3 within switch")
var yVals1 : [ChartDataEntry] = [ChartDataEntry]()
for i in 0..<xValues.count {
yVals1.append(ChartDataEntry(x: valuesLineChart[0][i],y: Double(i)))
}
var yVals3 : [ChartDataEntry] = [ChartDataEntry]()
for i in 0..<xValues.count {
yVals3.append(ChartDataEntry(x: valuesLineChart[2][i],label: nil)
let set3 = LineChartdataset(entries: yVals3,label: nil)
dataSets.append(set1)
dataSets.append(set2)
dataSets.append(set3)
//limit lines
limitSet1 = ChartLimitLine(limit: limitLines[0],label: "")
limitSet3 = ChartLimitLine(limit: limitLines[2],label: "")
chartView.rightAxis.addLimitLine(limitSet1!)
chartView.rightAxis.addLimitLine(limitSet2!)
chartView.rightAxis.addLimitLine(limitSet3!)
default:
break
}
let chartData = LineChartData( dataSets: dataSets)
chartView.data = chartData
}