我正在嘗試創建一個插件,它將繪製穿過原點(0,0)的軸,而不是僅顯示在圖的邊緣。我想要做的一件事是,當使用我的插件時,應該抑制常規軸(邊緣的)的繪製。因此,我增加了一些邏輯到鉤入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(和相同的y軸),這是應該阻止出現軸線但它不起作用。該選項被設置,但flot在繪製圖形時忽略它。我可以讓它不繪製常規軸的唯一方法是在設置繪圖時明確設置show選項。
任何想法,爲什麼這是行不通的?有沒有辦法讓它工作?
更新:所以在玩了一段時間之後,我認爲發生的事情是,例如,有一個options.xaxis和一個options.xaxes(一個數組),它只包含1個條目。出於某種原因,flot想要在options.xaxes [0]中使用1軸,而不是使用options.xaxis。但我不太清楚這裏的邏輯應該是什麼。他們都將我自定義的「crossOrigin」選項合併進來,但只有options.xaxis才能獲得它的「show」屬性集。