Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用getData仅从flot图表中的一行中拾取数据?_Javascript_Jquery_Charts_Interpolation_Flot - Fatal编程技术网

Javascript 如何使用getData仅从flot图表中的一行中拾取数据?

Javascript 如何使用getData仅从flot图表中的一行中拾取数据?,javascript,jquery,charts,interpolation,flot,Javascript,Jquery,Charts,Interpolation,Flot,我想知道我是否可以从多重折线图中提取一些特定的数据 如本例所示,该程序使用两个“for”循环i和j以及一个线性插值生成。它使用getData来读取值。最后,数字值直接显示在标签中 但是,我不想显示两行的数值,只想显示其中一行的数值 我该怎么做?如何使计算机只读取sinx的值而忽略cox 我直接附加了一段示例代码,这样您就不必复制它了 function updateLegend() { updateLegendTimeout = null; var pos = latestPos

我想知道我是否可以从多重折线图中提取一些特定的数据

如本例所示,该程序使用两个“for”循环i和j以及一个线性插值生成。它使用getData来读取值。最后,数字值直接显示在标签中

但是,我不想显示两行的数值,只想显示其中一行的数值

我该怎么做?如何使计算机只读取sinx的值而忽略cox

我直接附加了一段示例代码,这样您就不必复制它了

function updateLegend() {
    updateLegendTimeout = null;

    var pos = latestPosition;

    var axes = plot.getAxes();
    if (pos.x < axes.xaxis.min || pos.x > axes.xaxis.max ||
        pos.y < axes.yaxis.min || pos.y > axes.yaxis.max)
        return;

    var i, j, dataset = plot.getData();
    for (i = 0; i < dataset.length; ++i) {
        var series = dataset[i];

        // find the nearest points, x-wise
        for (j = 0; j < series.data.length; ++j)
            if (series.data[j][0] > pos.x)
                break;

        // now interpolate
        var y, p1 = series.data[j - 1], p2 = series.data[j];
        if (p1 == null)
            y = p2[1];
        else if (p2 == null)
            y = p1[1];
        else
            y = p1[1] + (p2[1] - p1[1]) * (pos.x - p1[0]) / (p2[0] - p1[0]);

        legends.eq(i).text(series.label.replace(/=.*/, "= " + y.toFixed(2)));
    }
}
只需去掉外部i循环并使用var series=dataset[0]


更新。

无论如何,谢谢。从任何一种programming@nachinthemachin,对不起,我不该这么无礼。看看这个。我已经改变了你的小提琴,所以显示的结果是来自COXX。看看程序对标签做了什么,您还需要更改这行图例.eq1.textseries.label.replace/=.*/,=+y.toFixed2;要更新cosx图例,.eq1将执行该部分。更新小提琴:
function updateLegend() {

    updateLegendTimeout = null;

    var pos = latestPosition;

    var axes = plot.getAxes();
    if (pos.x < axes.xaxis.min || pos.x > axes.xaxis.max ||
        pos.y < axes.yaxis.min || pos.y > axes.yaxis.max) {
        return;
    }

    // dataset[0] is the sin series...
    var j, dataset = plot.getData();
    var series = dataset[0];

    // Find the nearest points, x-wise

    for (j = 0; j < series.data.length; ++j) {
        if (series.data[j][0] > pos.x) {
            break;
        }
    }