Flot FillBetween插件可以很好地与折线图配合使用。但是,我需要使线条平滑并使它们更弯曲。我已经看到了CurvedLined pluginSpline plugin,但是它们都不能与fillbetween插件一起正常工作。

有什么方法可以使用两条曲线/样条曲线系列填充它们之间的区域?如下图所示。当一个序列彼此交叉时,也可以随时填充两个序列之间的任何封闭区域。

最佳答案

我对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。

09-20 23:45