5

Flot FillBetween 插件可以很好地与折线图配合使用。但是我需要平滑线条并使它们更弯曲。我见过CurvedLined 插件Spline 插件,但两者都不能与 fillbetween 插件一起正常工作。

有没有办法使用两条曲线/样条线系列并填充它们之间的区域?如下图所示。当一个与另一个相交时,也会填充两个系列之间的任何封闭区域。

在此处输入图像描述

4

1 回答 1

1

我对 FillBetween 插件不熟悉。我将专注于处理平滑部分。我有一个类似的问题,这些平滑选项对我也不起作用。我使用外部插件进行平滑处理。它的名字是smooth.js,它对我有用。Smooth.js 接收数据数组并返回一个函数。要获得“平滑点”,请将函数应用于 0 和数组长度之间的任何值。这个想法是获得比原始数据集更多的点。

例如,要平滑名为 test 的值数组:

//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));
}

我用这个例子做了一个JSFiddle 。您可以使用此插件并将平滑的数据传递给flot,然后使用FillBetween。

于 2014-01-29T17:05:16.060 回答