2013-04-30 4 views
5

Das Flot FillBetween Plugin funktioniert gut mit Liniendiagrammen. Jedoch muss ich die Linien glätten und sie kurviger machen. Ich habe die CurvedLined plugin und die Spline plugin gesehen, aber beide funktionieren nicht richtig mit dem fillbetween Plugin.Flot geschwungene Linien/Spline-Plugin, das mit FillBetween Plugin funktioniert?

Gibt es eine Möglichkeit, eine gekrümmte Linie/Spline-Serie zu verwenden und den Bereich zwischen ihnen zu füllen? Etwas wie das Bild unten. Befüllt auch jeden eingeschlossenen Bereich zwischen den beiden Serien, wenn man den anderen kreuzt.

enter image description here

Antwort

1

Ich bin nicht mit dem FillBetween Plug-in. Ich werde mich darauf konzentrieren, den glättenden Teil zu übernehmen. Ich hatte ein ähnliches Problem, wo diese Glättungsoptionen auch für mich nicht funktionierten. Ich habe ein externes Plug-In benutzt, um die Glättung zu machen. Sein Name ist smooth.js und es funktionierte für mich. Smooth.js ruft das Datenarray ab und gibt eine Funktion zurück. Um einen "geglätteten Punkt" zu erhalten, wenden Sie die Funktion auf einen beliebigen Wert zwischen 0 und der Länge des Arrays an. Die Idee ist, mehr Punkte als der ursprüngliche Datensatz zu erhalten.

Zum Beispiel ein Array von Werten namens Test zu glätten:

//obtaining smoothing function 

var s = Smooth(test, { 
    method: Smooth.METHOD_CUBIC, 
}); 

//obtaining smoothed data 
//asking for 10 "smoothed points" per each point in the original dataset 
test_smoothed = []; 
for (var i = 0; i <= test.length; i = i + .1) { 
    test_smoothed.push(s(i)); 
} 

ich ein JSFiddle mit diesem Beispiel hergestellt. Sie können dieses Plug-in verwenden und die geglätteten Daten an Flot übergeben und anschließend FillBetween verwenden.

+0

Wie können Sie ein Objekt glätten? '{Datum (Milli): Prozent, Datum (Milli), Prozent}' ... etc ... – shorif2000