1

いくつかのダイグラフ データ シリーズの初期可視性を列名で設定しようとしています。

これは、データが列を含む 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が完全にロードされた後、別の方法でこれを実行する必要があります.

4

1 に答える 1

3

new Dygraphデータ パラメータとして CSV ファイルへのパスを指定して呼び出すと、呼び出しは非同期になります。したがって、あなたの疑いは正しいです。あなたが を呼び出したときg.indexFromSetName("writer_write_start")、必要な回答を得るために必要なデータはまだ利用できません。

これに対処する最善の方法はdrawCallback、次のように setVisibility コードを initial に移動することです。

<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>
于 2012-03-04T18:06:32.937 に答える