Подтвердить что ты не робот

Как установить высоту и ширину диаграммы nvd3

Я пытаюсь установить ширину и высоту многострочной диаграммы nvd3 программно, используя

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

См. пример здесь:

http://jsfiddle.net/hPgyq/20/

Как вы видите, это действительно испортит график. Я знаю, что могу сделать это с помощью CSS:

#chart svg {
  width: 600px;
  height: 400px;
}

но я подумал, что это также возможно с помощью функций width() и height() на диаграмме. Я делаю что-то неправильно здесь или я неправильно использую две функции?

4b9b3361

Ответ 1

Да, возможно, как вы указали ширину и высоту диаграммы, вы должны использовать d3.select и установить его атрибут width и height.

Ниже перечислены изменения в коде и есть версия кода здесь

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;
    });
}

Ответ 2

Для AngularJs версия (angular-nvd3), мне пришлось добавить height либо в параметры диаграммы, либо в качестве атрибута:

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
};

Как сказано в комментариях, сначала, кажется, контролируется высота внутреннего svg, а вторая - высота глобальной диаграммы.