2013-08-26 3 views
0

저는 막 대형 차트를 사용하여 제 차트의 6 번째 및 막대와 12 번째 및 13 번째 막 대형 차트 사이의 간격을 더 넓히고 싶습니다. 지금은 심지어 패딩 결과가 .rangeRoundBands을 사용하고 특정 사각형에 대해 재정의 할 수있는 방법이없는 것 같습니다 (성공하지 못하면 해당 사각형에 패딩 및 여백 추가).D3 막 대형 차트의 특정 막간 간격을 변경하십시오.

Here's a jsfiddle of the graph

그리고 밴드와 막대 스스로 생성하는 내 코드 : 당신은 데이터와 인덱스에 따라 높이를 계산하는 기능을 제공 할 수

var yScale = d3.scale.ordinal() 
        .domain(d3.range(dataset.length)) 
        .rangeRoundBands([padding, h- padding], 0.05); 

    svg.selectAll("rect.bars") 
       .data(dataset) 
       .enter() 
       .append("rect") 
       .attr("class", "bars") 
       .attr("x", 0 + padding) 
       .attr("y", function(d, i){ 
        return yScale(i); 
       }) 
       .attr("width", function(d) { 
        return xScale(d.values[0]); 
       }) 
       .attr("height", yScale.rangeBand()) 

답변

0

합니다. 즉,

.attr("height", function(d,i) { 
      if(i == 5) { 
       return 5; 
      } 
      return yScale.rangeBand(); 
     }) 

과 같이 사용할 수 있습니다. 6 번째 막대를 5 픽셀 높이로 만듭니다. 물론이 값은 yScale.rangeBand()에 근거 할 수 있습니다. 즉, 간격을 넓히기 위해 특정 숫자를 뺍니다.

+0

헤이 라스, 나는 비슷한 시도하고, 그 술집 자체를 수 있지만, "높은"는 막대의 패딩을 변경하지 않습니다 (그리고 그냥 옆에있는 줄에 그 바 오버 플로우를 가진 끝) - 어떻게 든 yScale (그리고 더 중요한 것은 단일 막대의 패딩)을 다시 계산하는 방법을 찾아야합니다. – Mike

+0

바의 높이에 암시 적으로 채우기가 없습니다. 따라서 더 많은 패딩을 원한다면 막대의 높이를 줄이십시오. –

관련 문제