Ich erstelle ein mehrzeiliges Diagramm mit der Bibliothek ios-charts. (danielgindi/Diagramme). Ich erstelle ein Array für die X-Achse, die von Core Data abgerufen wird und wenn es keinen Wert für x Woche gibt, fügte ich eine 0.Multiple Liniendiagramm, möchte keine 0 Werte darstellen. Swift 2
Ich habe ein Beispiel Array von (für die X-Werte):
[[0,0,0,0,5,6,3,0,6,0,5,4,2,1,0,0,0,0,1,3,4,1,0,0], [5.2,0.0,3,2,7.0,8,9,0.0,5.0,0.0,4,6,0.0] , 0.0,0.0], [3.6,1.5,3.6,0.0,0.0,3.5,0.0,4.6,5.6,2.8,8.4,0.0]]
und für die y:
[Jan, Feb, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember]
Ich habe den folgenden Code, der diese drei Zeilen in einem Liniendiagramm angezeigt werden:
func setChart(xValues: [NSDate], valuesLineChart: [[Double]]) {
chartView.descriptionText = ""
chartView.noDataText = "You need to provide data for the chart."
var dataSets : [LineChartDataSet] = [LineChartDataSet]()
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)
set1.fillColor = UniversalStatic.data.colourArrayForGraph[0]
set2.fillColor = UniversalStatic.data.colourArrayForGraph[1]
set3.fillColor = UniversalStatic.data.colourArrayForGraph[2]
dataSets.append(set1)
dataSets.append(set2)
dataSets.append(set3)
set1.setColor(UniversalStatic.data.colourArrayForGraph[0])
set2.setColor(UniversalStatic.data.colourArrayForGraph[1])
set3.setColor(UniversalStatic.data.colourArrayForGraph[2])
set1.lineWidth = 2
set2.lineWidth = 2
set3.lineWidth = 2
set1.setCircleColor(UniversalStatic.data.colourArrayForGraph[0])
set2.setCircleColor(UniversalStatic.data.colourArrayForGraph[1])
set3.setCircleColor(UniversalStatic.data.colourArrayForGraph[2])
set1.drawCircleHoleEnabled = false
set2.drawCircleHoleEnabled = false
set3.drawCircleHoleEnabled = false
set1.circleRadius = 5.0
set2.circleRadius = 5.0
set3.circleRadius = 5.0
let data: CombinedChartData = CombinedChartData(xVals: xValues)
data.lineData = LineChartData(xVals: xValues, dataSets: dataSets)
chartView.data = data
}
Wie kann ich die 0-Werte vermeiden Plotten?
Vielen Dank für jede Hilfe
Ja, ich möchte es komplett überspringen. Ich dachte darüber nach, aber ich dachte nicht, dass das funktionieren würde. Zum Beispiel [0.0.0.0.5.6] & [Jan, Feb, March], wenn ich die ersten 2 überspringe, würde ich Jan nicht einfach die 5.6 zuweisen? –
Okay, ich sehe, was Sie jetzt wollen ... Sie möchten Zeilenumbrüche innerhalb des Diagramms. Ich glaube, es gab Entwickler in der Vergangenheit, die diese Funktion für die Bibliothek angefordert haben, aber soweit ich sagen kann, müsste man jede neue Zeile nach einem Zeilenumbruch isolieren und als neuen Datensatz implementieren ... Es wird, gelinde gesagt, komplex wegen Problemen mit der Art, wie der Bezier-Pfad gezeichnet wurde. Ich bin mir nicht sicher, ob es jetzt möglich ist. – Shen
Ah ok. Ich möchte nicht wirklich Zeilenumbrüche, nur kein Kreis auf den 0.0-Werten angezeigt und überspringt es, fast wie Ändern der 0 für Null. –