2017-09-05 76 views
0

我正在使用NVD3,並且在圖表的響應性方面遇到了一些麻煩。如何使NVD3圖表響應?

到目前爲止,我已經設法創建了幾個圖表,但這些圖表總是溢出容器,導致yAxis標籤被剪切或xAxis末端被剪切。

這裏有一個圖表中的圖像,其中Y軸被切斷:

enter image description here

這些都是我用來創建圖表的代碼片段:

nv.addGraph(function() { 
 
    chart = nv.models.lineChart() 
 
    .useInteractiveGuideline(false); 
 

 
    if (data.hasOwnProperty("key") && isColumnTotalChart || isRowTotalChart) { 
 
    chart.xAxis 
 
     .axisLabel(data.chartDataset.key); 
 
    } 
 

 
    chart.xAxis.tickValues(data.chartLabelIndexes) 
 
    .tickFormat(function(d) { 
 
     return data.chartLabels[d]; 
 
    }); 
 

 
    chart.yAxis.tickFormat(d3.format(',.1f')); 
 

 
    if (chartData.labels.length > 10) { 
 
    chart.xAxis.rotateLabels(-90); 
 
    } 
 

 
    chart.xAxis.showMaxMin(true); 
 

 
    d3.selectAll(chartSelectedSvg + " > *").remove(); 
 

 
    d3.select(chartSelectedSvg) 
 
    .datum(data.chartDataset) 
 
    .transition().duration(500) 
 
    .call(chart); 
 

 
    nv.utils.windowResize(chart.update); 
 

 
    return chart; 
 
});
div>svg { 
 
    min-height: 30vh; 
 
    margin: 0 auto; 
 
    display: block; 
 
}
<div ng-show="chartColumnData.data.length !== 0"> 
 
    <div id="chartTotalColumns" ng-show="chartColumnData.data.length !== 0"> 
 
    <svg></svg> 
 
    </div> 
 
    <div layout="row" layout-padding layout-align="center center" ng-show="chartColumnData.data.length !== 0"> 
 
    </div> 
 
</div>

我試圖設置視框preserveAspectRatio SVG的屬性,但無濟於事。

我什麼建議,這些問題都還沒有成功嘗試:

Responsive pie chart using NVD3

NVD3 Chart responsive issue

How to make a <svg> element expand or contract to its parent container?

你有什麼建議,對如何使這些圖表響應?

謝謝。

回答