2012-12-20 2 views
0

크로스 필터를 사용하여 히스토그램에 다양한 데이터 목록을 차트로 표시하고 있습니다. 아이템의 값 중 일부는 다른 것보다 훨씬 높습니다. 그리고 나는 로그 방식으로 히스토그램을 그리는 데 열중합니다.크로스 필터의 로그 차트

reduceSum이 호출 된 후 합계 항목 수를 로그 값으로 변환 할 수있는 방법이 있습니까? 나는 다음에

Math.log(d.count)/Math.LN10; 

처럼 뭔가를 추가 치열 해요 :

var crossfiltered_data = crossfilter(data), 
    all = crossfiltered_data.groupAll(), 
    item_labels = crossfiltered_data.dimension(function(d) { return d.name; }), 
    items_group = hour.group().reduceSum(function(d) { 
     return d.count 
    }), 
    charts = [ 
     barChart(on_range_change) 
      .dimension(item_labels) 
      .group(items_group) 
      .x(d3.scale.linear() 
      .domain([domain_start, domain_end]) 
      .rangeRound([0, 240])), 
    ], 
    chart = d3.selectAll(target) 
     .data(charts) 
     .each(function(chart) { 
      chart .on("brush", renderAll) 
        .on("brushend", renderAll); 
     }), 
    render = function(method) { 
      d3.select(this).call(method); 
    }, 
    renderAll = function(event) { 
     chart.each(render); 
    }; 

답변

0

은 왜 그냥 출력에 대한 로그 스케일을 사용합니까? d3.scale.log을 참조하십시오. 교차 필터 페이지에서 barChart을 사용하고 있다고 가정하면 this line을 변경하여 선형 눈금 대신 로그 눈금을 사용하면됩니다.