javascript - 按系列名称设置图文初始列可见性

标签 javascript dygraphs

我正在尝试按列名称设置某些 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 完全加载后以其他方式运行它。

最佳答案

当您使用 CSV 文件的路径作为其数据参数来调用 new Dygraph 时,该调用是异步的。所以您的怀疑是正确的 - 当您调用 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>

关于javascript - 按系列名称设置图文初始列可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9409513/

相关文章:

php - 使用带引号的 bbcode 插件时需要调整 tinymce

javascript - 如何解决函数中参数的问题?

javascript - Dygraph 不对称误差线

javascript - 如何在 dygraph 中设置多个 Y 轴?

javascript - z-index 在 Chrome 中不工作,在 FF、IE 等中工作

javascript - 单击一个按钮会触发另一个按钮的延迟单击

javascript - 在循环中将传入的值设置为事件监听器不起作用

dygraphs 选择区域而不缩放

javascript - 如果不是第一个,则设置日期列

javascript - 使用 Dygraphs 根据范围动态加载密集数据