我正在尝试按列名称设置一些 dygraphs 数据系列的初始可见性。
这是因为数据来自 CSV 文件,其中的列可能会出现或消失,但我知道默认情况下我想禁用一些列 - 但我不知道它们可能是什么列号(只是姓名)。
我是 JavaScript 新手,所以答案可能很简单。
我正在尝试这样做:
<script type="text/javascript">
g = new Dygraph(
document.getElementById("graphdiv"), // containing div
"last/test.csv",
{
connectSeparatedPoints: true,
includeZero: true
}
);
g.setVisibility(g.indexFromSetName("writer_write_start") - 1, 0);
</script>
但这给了我一个错误。如果我从 javascript 控制台或 onclick 事件运行 setVisibility 命令,它工作正常。我怀疑这与当我尝试运行引用 CSV 文件中的数据的方法时 Dygraph 未完全加载有关,并且我需要在 dygraph 完全加载后以其他方式运行它。
你打电话时new Dygraph
使用 CSV 文件的路径作为其数据参数,该调用是异步的。所以你的怀疑是正确的——当你打电话时g.indexFromSetName("writer_write_start")
,获得您想要的答案所需的数据尚不可用。
处理这个问题的最佳方法是将 setVisibility 代码移至初始drawCallback
,像这样:
<script type="text/javascript">
g = new Dygraph(
document.getElementById("graphdiv"), // containing div
"last/test.csv",
{
connectSeparatedPoints: true,
includeZero: true,
drawCallback: function(dg, is_initial) {
if (!is_initial) return;
dg.setVisibility(dg.indexFromSetName("writer_write_start") - 1, 0);
}
}
);
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)