2012-09-17 43 views
1

我正在嘗試創建一個插件,它將繪製穿過原點(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」屬性集。

回答

0

使用xaxes [0]而不是xaxis似乎可以解決這個問題,雖然現在還不清楚flot何時以及如何處理這些東西。