Multiple Charts : Placement

31 views
Skip to first unread message

Amar Kumar Singh

unread,
Jun 13, 2022, 1:12:21 PM6/13/22
to Google Visualization API
Hi,
I have a table with some data and creating pie charts for each row of the table. Everything works great and all the charts are getting created as expected.
Problem is all the charts are getting displayed in single row. How can create line breaks between charts after certain width is covered. I tried following:
a. manipulating the div width where the charts are drawn. The charts overshoot any wodth parameters.
b. adding line breaks after nth chart element using jquery but it just adds a line below the chart and draws the next one in same row.

I am new to javascript/frontend development.

    function drawChart(){
        $(".pie").each(function(){
            var pietr=$(this).closest('tr');
            var disk=pietr.children(':nth-child(1)').text();
            _drawChart(pietr, disk);
        });
    };

function _drawChart(pietr, disk) {
        // Create the data table for Sarah's pizza.
        var data = new google.visualization.DataTable();
        var used_space = parseFloat(pietr.children(':nth-child(2)').text());
        var free_space = (100 - used_space);
        data.addColumn('string', 'status');
        data.addColumn('number', 'percentage');
        data.addRows([
            ["Free: "+free_space, free_space],
            ["Used: "+used_space, used_space],
            ]);
        var options = {title:'Disk: '+pietr.children(':nth-child(1)').text(),
            width:200,
            height:200,
            pieSliceText: 'value',
            'chartArea':{width:"95%"},
            sliceVisibilityThreshold: 0,
            colors: ['rgb(76, 122, 63)', 'red', '#ff9300', '#ff6e00']
        };
        // Instantiate and draw the chart for Sarah's pizza.
        var chart = new google.visualization.PieChart(document.getElementById(disk));
        chart.draw(data, options);
        // Incrementing count for line break
        count++;
        if (count%4 == 0) {
            console.log("After Draw");
            //$("<br>").insertAfter(chart);
            console.log(chart);
            console.log(document.getElementById(disk));
            //$("<p>Hello</p>").insertAfter(document.getElementById(disk));
        };
    };
 

Reply all
Reply to author
Forward
0 new messages