プロットの端にのみ表示されるのではなく、原点(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」プロパティセットを取得します。