2013-09-27 2 views
2

저는 스택 바 차트로 작업하고 있습니다. 툴팁에 정확한 값이 아닌 데이터의 카테고리 만 표시하려면 어떻게해야합니까? 막대의 끝에 값을 표시하지 않고 카테고리를 표시 할 수 있습니다 (예 : .showValue(true)을 설정하는 경우와 같이) .NVD3 툴팁 만 카테고리를 표시합니다.

UPDATE는

나는 툴팁에만 카테고리 (키)에 표시에 대한 해결책을 발견했습니다,하지만 소스 코드의 수정을 포함하고 너무 좋은 보이지 않는다. 내가하고 싶은 일에 대한 적절한 이름은 각 막대의 레이블을 표시하는 것입니다.

chart.xAxis. 
      .axisLabel(attrs.xAxisLabel) 
      .tickFormat(d3.format('r')); 

그것을 나에게 attrs가 정의되지 않는다는 오류를 제공하기 때문에 : 나는이 코드와 함께 작동 할 수 없습니다. 나는 아이디어가 from here입니다. 그러나 나는 그것을 작동하게 만들 수 없다.

UPDATE 좀 더 구체적으로 :

My chart

내가 가져가 아닌 경우, 수직 축이 round_1_2에 보여주고 싶다.

+0

NVD3는 매우 유연합니다. 소스를 수정하는 것이 아마도 가장 좋은 방법 일 것입니다. –

+0

그러나 x 축 레이블을 표시 할 방법이 없습니까? – Pio

+0

무엇을 하려는지 확실하지 않습니다. 이미 축 레이블을 표시하지 않습니까? –

답변

3

이 업데이트 : 작업 바이올린 : http://jsfiddle.net/reblace/D2Dak/4/가있다 ... 그들도 자신의 사이트의 예에 문제가 여전히 오류가 발생 NVD3 코드 몇 가지 문제입니다 ...하지만

지금 내가 여기에 언급 물건입니다 입증 할 수있다.

가 코드를 수정하지 않고 툴팁을 사용자 정의하려면 코드에서 이것을 시도 : 당신이 툴팁을 렌더링하는 데 사용되는 HTML 템플릿을 수정할 수 있도록

chart.tooltip(function(key, x, y, e, graph) { 
    return '<h3>' + key + '</h3>' + 
      '<p>' + y + ' on ' + x + '</p>'; 
}); 

그들은의 multibarchart 기능에 대한 기능을 통해 툴팁 노출 .

//============================================================ 
// Expose Public Variables 
//------------------------------------------------------------ 

// expose chart's sub-components 
chart.dispatch = dispatch; 
chart.multibar = multibar; 
chart.legend = legend; 
chart.xAxis = xAxis; 
chart.yAxis = yAxis; 
... 
chart.reduceXTicks= function(_) { 
    if (!arguments.length) return reduceXTicks; 
    reduceXTicks = _; 
    return chart; 
}; 

chart.rotateLabels = function(_) { 
    if (!arguments.length) return rotateLabels; 
    rotateLabels = _; 
    return chart; 
} 

chart.tooltip = function(_) { 
    if (!arguments.length) return tooltip; 
    tooltip = _; 
    return chart; 
}; 

마이크 Bostock 재사용 차트를 향해 "의 디자인 패턴을 설명

당신이 그들의 소스 코드를 보면, 당신은 수정을 위해 모든 것을 노출하는 부분을 찾을 수 있습니다 또한

chart.reduceXTicks(false);  // Will show labels on all bars 
chart.rotateLabels(angle);  // Rotate the labels to "angle" degrees 
chart.xAxis.staggerLabels(true) // Staggers the X Axis labels vertically so they don't run into eachother 

을있다 "NVD3이 뒤 따르므로 익숙해지면 도움이 될 것입니다. http://bost.ocks.org/mike/chart/

+0

툴팁에 대한 솔루션이 매우 잘 작동합니다. 우리는'reduceXTicks' 메소드를 찾을 수 없기 때문에 다른 버전의 nvd3을 가지고 있다고 생각합니다. – Pio

+0

제가 언급 한 것은 해당 사이트의 최신 정보입니다. 현재 사이트에있는 것이 문제이지만, 몇 주 전에 NVD3 사본을 가지고 프로젝트를 진행했습니다. 작동 예제를위한 바이올린을 확인하십시오.그들이이 옵션들을 추가 할 때 나는 1 년 전 NVD3를 사용하고 있었고 이러한 것들을 지원하지 않았다는 것을 확신하지 못합니다. 그러나 좋은 소식은 버전을 거의 완벽하게 업그레이드 할 수 있다는 것입니다. – reblace

관련 문제