Ich verwende die Charts Frameworks (Danielgindi/Charts).Liniendiagramm-Begrenzungslinien ausblenden. Swift 2
Ich habe ein Segment mit 1,2 & 3. Abhängig von der Auswahl sollte das Liniendiagramm die Anzahl der Zeilen innerhalb eines Liniendiagramms anzeigen. Ich habe eine switch-Anweisung, die abhängig von der Nummer innerhalb des Segments, dass diese Menge an Zeilen anzeigt. Z.B. In Fall1 wird 1 Zeile angezeigt, Fall 2, 2 Zeilen usw. werden angezeigt. & Dies funktioniert wie erwartet.
Wenn ich versuche, Grenzlinien innerhalb dieser switch-Anweisung hinzuzufügen und von einem höheren Fall zu einem niedrigeren z. 3 bis 2, die dritte Zeile verschwindet nicht & Zeile 1 und 2 scheinen Duplikate zu haben.
Gibt es trotzdem die Grenzwertlinien innerhalb der switch-Anweisung zu verstecken?
Ich habe den folgenden Code:
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(value: valuesLineChart[0][i], xIndex: i))
}
let set1 = LineChartDataSet(yVals: yVals1, label: nil)
dataSets.append(set1)
//limit lines
let 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(value: valuesLineChart[0][i], xIndex: i))
}
var yVals2 : [ChartDataEntry] = [ChartDataEntry]()
for i in 0..<xValues.count {
yVals2.append(ChartDataEntry(value: valuesLineChart[1][i], xIndex: i))
}
let set1 = LineChartDataSet(yVals: yVals1, label: nil)
let set2 = LineChartDataSet(yVals: yVals2, label: nil)
dataSets.append(set1)
dataSets.append(set2)
//limit lines
let limitSet1 = ChartLimitLine(limit: limitLines[0], label: "")
let 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(value: valuesLineChart[0][i], xIndex: i))
}
var yVals2 : [ChartDataEntry] = [ChartDataEntry]()
for i in 0..<xValues.count {
yVals2.append(ChartDataEntry(value: valuesLineChart[1][i], xIndex: i))
}
var yVals3 : [ChartDataEntry] = [ChartDataEntry]()
for i in 0..<xValues.count {
yVals3.append(ChartDataEntry(value: valuesLineChart[2][i], xIndex: i))
}
let set1 = LineChartDataSet(yVals: yVals1, label: nil)
let set2 = LineChartDataSet(yVals: yVals2, label: nil)
let set3 = LineChartDataSet(yVals: yVals3, label: nil)
dataSets.append(set1)
dataSets.append(set2)
dataSets.append(set3)
//limit lines
let limitSet1 = ChartLimitLine(limit: limitLines[0], label: "")
let limitSet2 = ChartLimitLine(limit: limitLines[1], label: "")
let limitSet3 = ChartLimitLine(limit: limitLines[2], label: "")
chartView.rightAxis.addLimitLine(limitSet1)
chartView.rightAxis.addLimitLine(limitSet2)
chartView.rightAxis.addLimitLine(limitSet3)
}
let data: CombinedChartData = CombinedChartData(xVals: xValues)
data.lineData = LineChartData(xVals: xValues, dataSets: dataSets)
chartView.data = data
}