2016-07-20 19 views
2

enter image description here Hallo Ich möchte Liniendiagramm ähnlich wie Healthkit erstellen. Zum Beispiel habe ich auf X-Achse (Juli 14, 15, 16, 17), Y-Achse (0, 50, 100) und Datensatz im (x, y) Format ist ((Juli 15, 30), (Jul 17, 80)) ich versuche folgende BibliothekenLiniendiagramm mit festen X-Achse-Label wie healthkit Grafik in iOS

https://github.com/Boris-Em/BEMSimpleLineGraph/tree/master/Sample%20Project/SimpleLineChart

https://github.com/core-plot/core-plot

aber alle bevölkern x-Achse basierend auf Daten eingestellt. d. h. alle Bibliotheken nehmen nur Parameter für einen Datensatz auf, der auf dieser x-Achse basiert, und Y-Achsenbezeichnungen werden aufgefüllt. Kannst du mir bitte eine andere Bibliothek vorschlagen, durch die ich ähnlich wie oben erläutert Liniendiagramm erreichen kann. Danke im Voraus.

Antwort

1

Auch diese Sie es in Ihrem vorhandenen Graph

Betrachten unten Beispiel tun könnten. - {[0,5], [1,5], [3,5], [4,5]}

Sehen Sie, es gibt keinen Wert für 2, so dass Liniendiagramm 0-5 zu 1- zeichnet 5 dann Lücke dann 3-5 zu 4-5.

Ich hoffe, jetzt könnten Sie herausfinden.

Noch, wenn Sie möchten, dann erhalten Sie unter Grafik-Bibliothek.

Tun Sie es mit https://github.com/danielgindi/Charts

Es gibt viele Eigenschaften wie Clip, Skalierung, Min-, Grafik max etc für Zeile.

Verwenden Sie obwohl Eigenschaften können Sie erreichen.

https://github.com/danielgindi/Charts/issues/533

Herausgegeben Antwort

Nach etwas Arbeit um, fand ich die Art und Weise.

Download sample code

let months = ["July 14", "15", "16", "17", "18", "19", "20"] 
let unitsSold = [0.0, 0.0, 0.0, 100.0, 25.0, 50.0, 75.0] 

for i in 0..<dataPoints.count { 
    if !values[i].isZero { 
     let dataEntry = ChartDataEntry(value: Double(values[i]), xIndex: i) 
      dataEntries.append(dataEntry) 
    } 
} 

screen shot

angebracht Refer

enter image description here

+0

Sie können die Antwort akzeptieren, wenn Ihnen geholfen wird. – Hasya

1

In PNChart erstellen Sie ein Array von Indizes, die Sie den Wert überspringen möchten. Setzen Sie die Bedingung drawdot funtion auf den Start der for-Schleife des Datenarrays, wenn das Array den Indexwert enthält, und fahren Sie fort.