2014-05-19 3 views
0

nvd3.js.를 사용하여 간단한 선 그래프를 만들려고합니다. 내가 수동으로 높이와 너비를 설정높이와 너비를 설정할 때 차트가 잘립니다.

Height/width not set

, 그것은 모두 차단됩니다 : 난 그렇게처럼 보이는 간단한 작업을 얻었다.

Manually set

내 코드는 그래서 다음과 같습니다

var min_date = data[0].values[0].x 
var max_date = data[0].values[0].x 
var xScale = d3.time.scale() 
    .domain([min_date, max_date]); 

var width = nv.utils.windowSize().width - 40, 
    height = nv.utils.windowSize().height - 40; 

nv.addGraph(function() { 
    var chart = nv.models.lineChart() 
    .useInteractiveGuideline(true) 
    .height(height) 
    .width(width) 
    ; 

    chart.xAxis 
    .scale(xScale) 
    .axisLabel('Day') 
    .tickFormat(function(d){ 
     return d3.time.format('%x')(new Date(d)) 
    }) 
    .tickValues(data[0].values.map(function(d){ 
     return d.x; 
    })) 
    ; 

    chart.xScale(d3.time.scale()); 

    chart.yAxis 
    .axisLabel('Followers') 
    .tickValues(data[0].values.map(function(d){ 
     return d.y; 
    })) 
    .ticks(1) 
    ; 

    d3.select('#chart svg') 
    .datum(data) 
    .transition().duration(500) 
    .call(chart) 
    ; 

    nv.utils.windowResize(chart.update); 

    return chart; 
}); 

내가 무슨 일이 일어나고 있는지 알아낼 수 없습니다. 어떤 아이디어?

업데이트 크기를 조정하기 전에 상단 그래프의 jsfiddle입니다. http://jsfiddle.net/yw7Jn/1/

날짜는 무시할 수 있습니다. 나는 바이올린을 만들었지 만 나를 위해 잘 작동하면 엉망이되었습니다. 차트의 크기를 변경하는 경우

+0

NVD3은 높이와 너비를 올바르게 설정해야합니다. 그게 너 한테 효과가 없니? –

+0

글쎄, 첫 번째 그림은 단지 기본 높이/너비를 사용하고 있습니다. 나는 그것을 거기에 두지 않을 것이다. 그것은 나를 위해 너무 작아. 키가 크고 싶지만 두 번째 그림처럼 잘립니다. – ukejoe

+0

이렇게 작동해야합니다. 페이지에 다른 요소가 있습니까? 완전히 재현 할 수있는 예제를 게시 할 수 있습니까? –

답변

1

, 당신은 또한 그에 따라 바깥 SVG에 대한 크기를 변경해야

var chart = nv.models.lineChart() 
    .useInteractiveGuideline(true) 
     .height(800) 
// ... 
d3.select('#chart svg') 
    .attr("height", 800) 
    .datum(chartData) 
    ... 

전체 데모 here합니다.

+0

아, 그렇게 간단 할 것임을 알았습니다. 감사! – ukejoe

관련 문제