我有一个带有移动传奇的Dygraph.js"快照"到最近的点。无论如何,这是所期望的行为。
如果我使用否值(下面)传递数据,那么我会得到所需的行为。突出显示回调(我认为)会使图例与(time_1,1.5)或(time_4,1.6)中的值对齐,但会忽略time_2和time_3:< / p>
time_1,1.5
time_2,
time_3,
time_4,1.6
但如果我有这样的数据( NaN 值),那么图例实际上会在time_2和time_3处捕捉到不存在的点,并且很难突出显示拥挤数据集中的点:
time_1,1.5
time_2,NaN
time_3,NaN
time_4,1.6
问题是,我需要支持 没有值和 NaN 值,以便控制数据如何指向使用connectSeparatedPoints
连接。我希望完全禁用所有点的图例捕捉/突出显示行为,除非它们具有明确的真实非NaN值。
highlightCallback
/ unhighlightCallback
是实现此目的的正确方法还是其他内容?
答案 0 :(得分:0)
禁用图例的方法是在第一个系列格式化程序中抛出异常。当第二个系列的值为NaN时抛出异常将避免传说捕捉这些点。
这可以使用第一个系列格式化程序来完成:
function(val, opts, seriesName, dygraph, row, col) {
// raise an exception if the second series value is NaN
if (isNaN(dygraph.getValue(row, 1))) {
throw "disable legend for NaN"
}
return val;
}
此片段表示使用此格式化程序的简短示例:
var data = "x,y\n"
+"0,1.5\n"
+"1,1.5\n"
+"2,NaN\n"
+"3,NaN\n"
+"4,1.6\n"
+"5,1.1\n";
new Dygraph(document.getElementById("graph"), data, {height:200,
axes: {
x: {
valueFormatter: function(val, opts, seriesName, dygraph, row, col) {
if (isNaN(dygraph.getValue(row, 1))) {
throw "disable legend for NaN"
}
return val;
}
}
}
});
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/dygraph/1.1.1/dygraph-combined.js"></script>
<div id="graph" />
&#13;