2013-05-02 86 views
0

我有一個由4個系列組成的圖表。四個中的三個是堆積的條形圖,第四個是一條線。爲什麼圖表以這種方式行事?我認爲這與我在該系列中通過$.jqPlot函數的順序無關。我以爲你可以通過使用series屬性來調整你的系列,併爲你不想調整的東西提供一個空對象。爲什麼jqplot的行爲如此?

scoreArray是我想成爲一個折線圖的系列,我希望覆蓋這些條。我第一次嘗試使用此代碼:

$.jqplot("HistoryChart", 
    [scoreArray, AvailableArray, UnavailableArray, UnknownArray], { 
     stackSeries: true, 
     seriesDefaults : { 
      renderer: $.jqplot.BarRenderer, 
      rendererOptions : { 
       barWidth: 40 
      } 
     }, 
     series : [{ 
      disableStack : true, 
      renderer: $.jqplot.LineRenderer 
     }, {}, {}, {}], 
     axesDefaults : { 
      tickRenderer: $.jqplot.CanvasAxisTickRenderer, 
      tickOptions: { 
       angle: -45 
      } 
     }, 
     axes: { 
      xaxis : { 
       renderer: $.jqplot.CategoryAxisRenderer, 
       ticks: dateArray 
      } 
     } 
    } 
); 

這是生成的圖形:

enter image description here

現在,如果我做了scoreArray最後一個系列,並相應調整了一系列的財產,它看起來是正確的。下面是代碼和圖形:

$.jqplot("HistoryChart", 
    [AvailableArray, UnavailableArray, UnknownArray, scoreArray], { 
     stackSeries: true, 
     seriesDefaults : { 
      renderer: $.jqplot.BarRenderer, 
      rendererOptions : { 
       barWidth: 40 
      } 
     }, 
     series : [{}, {}, {}, { 
      disableStack : true, 
      renderer: $.jqplot.LineRenderer 
     }], 
     axesDefaults : { 
      tickRenderer: $.jqplot.CanvasAxisTickRenderer, 
      tickOptions: { 
       angle: -45 
      } 
     }, 
     axes: { 
      xaxis : { 
       renderer: $.jqplot.CategoryAxisRenderer, 
       ticks: dateArray 
      } 
     } 
    } 
); 

enter image description here

回答

0

似乎更喜歡我的錯誤。 您尚未設置y軸min-max,這是偏斜軸的初始設置。 嘗試設置最小值。它可能工作

0

選項disableStack: true應該從該系列開始一個新的堆積圖。當你將它放在第一個例子的第一個條形圖上時,你會得到同樣的圖形。看到修改後的代碼:

.jqplot("HistoryChart", 
[scoreArray, AvailableArray, UnavailableArray, UnknownArray], { 
    stackSeries: true, 
    seriesDefaults : { 
     renderer: $.jqplot.BarRenderer, 
     rendererOptions : { 
      barWidth: 40 
     } 
    }, 
    series : [{ 
     renderer: $.jqplot.LineRenderer 
    }, 
    { 
     disableStack : true 
    }, {}, {}], 
    axesDefaults : { 
     tickRenderer: $.jqplot.CanvasAxisTickRenderer, 
     tickOptions: { 
      angle: -45 
     } 
    }, 
    axes: { 
     xaxis : { 
      renderer: $.jqplot.CategoryAxisRenderer, 
      ticks: dateArray 
     } 
    } 
} 
); 

但是,這似乎並沒有工作: Messed up graph

這似乎不被支持叫它線圖上。 =

因此,使其工作的唯一方法是將線條系列添加爲最後一個系列,並在這些線條系列上添加disableStack : true

+0

你的系列數組看起來像它在AvailableArray數組上設置disableStack。那是你想要的嗎?我認爲這將是第一個數組索引。 – Justin 2013-05-07 17:03:28

+0

根據我看到的例子,我認爲它會以這種方式在第一個條形圖上工作,但使用此代碼可以得到一些非常有趣的結果:http://i.imgur.com/dV3IrtH.png – Pesikar 2013-05-07 17:11:40