2013-06-14 23 views
17

dữ liệu:Biểu đồ MultiBar với nvd3/d3 chỉ hiển thị nhãn cho mọi dấu tick khác trên trục x. Làm thế nào tôi có thể khiến tất cả chúng xuất hiện?

nvd3TestData = [ 
     { 
     values:[ 
      {x:"M",y:1}, 
      {x:"T",y:2}, 
      {x:"W",y:3}, 
      {x:"R",y:3}, 
      {x:"F",y:4}, 
      {x:"S",y:5}, 
      {x:"U",y:6} 
     ], 
     key:"Apples" 
     }, 
     { 
     values:[ 
      {x:"M",y:5}, 
      {x:"T",y:2}, 
      {x:"W",y:6}, 
      {x:"R",y:8}, 
      {x:"F",y:2}, 
      {x:"S",y:4}, 
      {x:"U",y:1} 
     ], 
     key:"Zebras" 
     } 
    ] 

Tạo biểu đồ (kéo từ một chỉ thị angularjs):

nv.addGraph -> biểu đồ = nv.models.multiBarChart() .stacked (true) .showControls (false)

chart.xAxis 
    .axisLabel(attrs.xAxisLabel) 

chart.yAxis 
    .axisLabel(attrs.yAxisLabel) 
    .tickFormat(d3.format(',r')) 


console.log element 


d3.select(element[0].children[0]) 
    .datum(nvd3TestData) 
    .call(chart) 

nv.utils.windowResize(chart.update) 

Output:

Output

sản lượng dự kiến ​​sẽ có tất cả 7 nhãn: MTWRFSU

Trả lời

23

Tôi nhìn vào nvd3.org và không thể tìm thấy bất kỳ tài liệu thật, nhưng việc kiểm tra nguồn gốc, tôi thấy https://github.com/novus/nvd3/blob/master/src/models/multiBarChart.js cho thấy một tham số biểu đồ boolean của " reduceXTicks "với một bình luận cho biết nó sẽ làm những gì bạn muốn. Tôi đã thử nó với một trong các biểu đồ ví dụ và nó hoạt động. Cụ thể, tôi đã sử dụng:

chart 
    .reduceXTicks(true) 
+0

Cảm ơn! Không chắc chắn làm thế nào tôi bị mất khi tôi nhìn qua nguồn. –

+5

Tôi nghĩ rằng bạn có nghĩa là '.reduceXTicks (false)' – mqklin

+0

Tác phẩm này, nhưng đối với trường hợp của tôi, các nhãn chồng lên nhau :-( – Casperonian

1

Không có tài liệu phù hợp, nhưng bạn có thể đạt được nó. Chỉ cần thêm dòng dưới đây vào biểu đồ của bạn reduceXTicks: false

Phần còn lại sẽ theo sau. Cảm ơn