2012-06-12 78 views
2

我正在使用下面的一段代碼來顯示jqPlot中的一組條形圖。但是,我遇到了兩個問題:jqPlot-問題顯示條形圖-axis填充和欄間距離

  1. xaxis的範圍值的兩側都沒有填充。 pad屬性似乎不起作用。

  2. 當條數很大時,條重疊在一起。 barPadding屬性似乎沒有效果。

我看着這個鏈接Having problems with jqPlot bar chart。答案建議使用CategoryAxisRenderer。但由於我使用的是時間序列數據,因此我需要DateAxisRenderer

請幫忙。

function plotBarGraph(data,myticks,series) 
{ 
    $("#placeholder").empty(); 
    $.jqplot('placeholder',data, 
      { 
       //stackSeries:true, 
        seriesDefaults:{ 
         renderer:$.jqplot.BarRenderer, 
         barMargin:1, 
         barPadding:0.5 
        }, 
        axes: 
         { 
         xaxis: 
          { 
          ticks:myticks, 
          tickInterval:10, 
          renderer:$.jqplot.DateAxisRenderer, 
          pad:2.5, 
          tickOptions: 
           { 
           formatString:'%d-%m-%y' 
           } 
          } 
         }, 
         legend: 
          { 
          show:true, 
          labels:series 
          }  
      }); 
} 
+0

請在http://jsfiddle.net上構建一個工作示例,以便可以試驗您的數據,並且可以更快地獲得解決方案。 – Boro

回答

1

在這種情況下,如果你不希望使用在鏈接中提到的方法,您可以與您的日期軸的最大/最小值玩。

我想你也可能會發現有用的the approach to a similar sort of problem with padding我選擇在創建時設置刻度並在繪製繪製後隱藏不需要的刻度。

在我可以得到任何進一步的幫助之前,請提供一個示例來說明您的問題。

0

對於第二個問題,我遇到了類似的問題。我設置了一個選擇語句,根據其中有多少條線條來擴大我的圖表的大小。然後,我做了父卷可滾動(稱爲「dataHolder」),並解決了這個問題。

 // set div properties depending on how many sets of data are in the 
     //array so the view is sized properly 
     $("#chartDiv").html("").css("width", "750px"); // chartDiv's default settings 
     $("#tabs-6").removeClass("dataHolder").css("width", "900px"); // parent Div's default settings 
     if (dataArray.length > 10) { 
      $("#chartDiv").css("width", "1600px"); 
      $("#tabs-6").addClass("dataHolder").css("width", "900px"); 
     } else if (dataArray.length > 6) { 
      $("#chartDiv").css("width", "1200px"); 
      $("#tabs-6").addClass("dataHolder").css("width", "900px"); 
     } 
0

我找到了一個解決方案,將Date數據與CategoryAxisRenderer一起使用。你必須像下面這樣配置deaxax:

axes: { 
     xaxis: { 
      renderer: $.jqplot.CategoryAxisRenderer, 
      rendererOptions: { 
       tickRenderer: $.jqplot.DateTickRenderer, 
       tickOptions: { 
        formatter: $.jqplot.DateTickFormatter, 
        formatString:'%d/%m' 
       } 
      } 
     } 
    } 

我希望它有幫助! ;)