how to set height and width of nvd3 chart

前端 未结 2 1072
别跟我提以往
别跟我提以往 2020-12-10 01:29

I\'m trying to set the width and height of a nvd3 multi bar chart programmatically using

chart.width(600);
chart.height(400);

See the examp

相关标签:
2条回答
  • 2020-12-10 02:09

    For the AngularJs version (angular-nvd3), I had to add the height either in chart options and as an attribute:

    chart.html

    <nvd3 options='vm.chartOptions' data='vm.chartData' height="250" config="vm.chartConfig">
        </nvd3>
    

    chart.controller.js

    vm.chartOptions = {
        chart : {
            height : 250,
            type : "pieChart",
            donut : true,
            showLegend : false,
            //The rest of the configuration
    };
    

    As it is told in the comments, first seems to control the height of the inner svg and the second does the global chart height.

    0 讨论(0)
  • 2020-12-10 02:21

    Yes it is possible, like you have specified the width & height of the chart, you have to use the d3.select and set its width & height attribute.

    Changes to the code are below and there is a version of the code here

    function visualizeData(data) {
        nv.addGraph(function() {
            var width = 600, height = 400;
            chart = nv.models.multiBarChart().x(function(d) {
                return d.x;
            }).y(function(d) {
                return d.y;
            }).color(['#aec7e8', '#7b94b5', '#486192']).stacked(true)
            //.margin({top:150,right:150,bottom:150,left:150})
            .width(width).height(height);
    
            chart.multibar.hideable(false);
    
            chart.xAxis.showMaxMin(true).tickFormat(d3.format(',f'));
    
            chart.yAxis.tickFormat(d3.format(',.1f'));
    
            d3.select('#chart svg').datum(data).transition().duration(500).call(chart).style({ 'width': width, 'height': height });
    
            nv.utils.windowResize(chart.update);
    
            return chart;
        });
    }
    
    0 讨论(0)
提交回复
热议问题