2016-12-19 82 views
0

我創建了一個折線圖來顯示最近三個月的數據。它工作正常,除了它只顯示兩個日期/月x軸(第一個和最後一個)。中間點的標籤不顯示。在x軸nvd3圖表中顯示月份 - odoo?

linechart.js

self.chart = nv.models.lineChart() 
      .margin({left:100,botoom:50,top:0}) 
      .useInteractiveGuideline(true) 
      .transitionDuration(350) 
      .showYAxis(true) 
      .showXAxis(true) 
      .showLegend(false) 
      .width(220) 
      .height(150) 

      self.chart.xAxis 
      .axisLabel('Month') 
      .tickFormat(function(d) { 

       return d3.time.format("%b-%Y")(new Date(d)); }) 

      self.chart.yAxis 
      .axisLabel(myData[0].ylabel) 
      .tickFormat(d3.format(',.1f')); 

      myData = self.data; 

數據

[{ 'Y':7L, 'X':u'2016-10 '},{' Y「:2L, 'X':u'2016-11 '},{' Y ':6L, 'X':u'2016-12'}]

圖片

enter image description here

+0

你試過'xAxis.ticks(d3.time.months)'嗎? – JulCh

+1

我想,這是因爲可用的空間。你能增加圖表的寬度並檢查嗎? 'nv.models.lineChart()。寬度(420)' – sandyJoshi

回答

0

https://github.com/d3/d3-axis/blob/master/README.md#axis_tickValues

您需要爲您的軸或D3會生成它們tickValues。看一看下面的代碼段:

 chart.xAxis 
      .tickFormat(function(d) { return d3.time.format("%m/%d/%y")(new Date(d)); }) 
      .tickValues(_.map(tick_values, function(d) { return getDate(d); })) 
      .rotateLabels(-30); 

其中tick_values是一個數組。有關更多信息,請查看上述文檔。