Javascript 如何使用getData仅从flot图表中的一行中拾取数据?
我想知道我是否可以从多重折线图中提取一些特定的数据 如本例所示,该程序使用两个“for”循环i和j以及一个线性插值生成。它使用getData来读取值。最后,数字值直接显示在标签中 但是,我不想显示两行的数值,只想显示其中一行的数值 我该怎么做?如何使计算机只读取sinx的值而忽略cox 我直接附加了一段示例代码,这样您就不必复制它了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
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;
}
}