我正在使用NVD3,並且在圖表的響應性方面遇到了一些麻煩。如何使NVD3圖表響應?
到目前爲止,我已經設法創建了幾個圖表,但這些圖表總是溢出容器,導致yAxis標籤被剪切或xAxis末端被剪切。
這裏有一個圖表中的圖像,其中Y軸被切斷:
這些都是我用來創建圖表的代碼片段:
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
How to make a <svg> element expand or contract to its parent container?
你有什麼建議,對如何使這些圖表響應?
謝謝。