1

プロットの端にのみ表示されるのではなく、原点(0,0)と交差する軸を描画するflotのプラグインを作成しようとしています。私がやりたいことの1つは、プラグインを使用するときに、通常の軸(端にある軸)の描画を抑制しなければならないことです。そこで、次のようなprocessOptionsにフックする関数にロジックを追加しました。

    plot.hooks.processOptions.push(processOptions);

    function processOptions(plot, options) {
        if (options.crossOrigin) {
            if (options.xaxis.crossOrigin) {
                options.xaxis.show = false;
                plot.hooks.drawBackground.push(drawXAxis);
            }
            if (options.yaxis.crossOrigin) {
                options.yaxis.show = false;
                plot.hooks.drawBackground.push(drawYAxis);
            }
        }
    }

options.xaxis.showをfalseに設定すると(yaxisについても同じ)、これにより軸の表示が停止するはずですが、機能しません。オプションは設定されますが、flotはグラフを描画するときにそれを無視します。通常の軸をプロットしないようにする唯一の方法は、プロットを設定するときにshowオプションを明示的に設定することです。

これが機能しない理由はありますか?それを機能させる方法はありますか?

更新:これをしばらく試してみたところ、たとえば、options.xaxisとoptions.xaxes(配列)が1つだけ含まれていることが起こっていると思います。何らかの理由で、flotはoptions.xaxisの代わりにoptions.xaxes[0]の1軸を使用したいと考えています。しかし、ここでのロジックがどうあるべきかはよくわかりません。どちらもカス​​タムの「crossOrigin」オプションがマージされますが、options.xaxisのみが「show」プロパティセットを取得します。

4

1 に答える 1

0

xaxisの代わりにxaxes[0]を使用すると問題が解決するようですが、flotがこのようなものをいつどのように処理しているかは明らかではありません。

于 2012-09-20T18:00:39.987 に答える