Home / Programmazione / Javascript - AJAX / Creare grafici responsive con Google Charts
Mattepuffo

Creare grafici responsive con Google Charts

Creare grafici responsive con Google Charts

Una libreria Javascript che sto usando parecchio per la creazione di grafici è Google Chart.

Molto semplice da usare e da includere.

Oggi vediamo come impostare la "modalità" responsive.

In eveirà la cosa è molto semplice: questo il div:

   <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
   <script type="text/javascript" src="jquery.js"></script>
   <column cols="6" class="cols_chart">
        <div id="chart_entrate"></div>
    </column>

Come vedete non ho impostato misure.

Questo perchè le imposteremo via Javascript come opzioni da passare a Google Chart.

Per questo esempio abbiamo bisogno anche di jQuery:

    google.charts.load('current', {'packages': ['corechart']});
    google.charts.setOnLoadCallback(drawChart);
    function drawChart() {
        var options = {
            title: 'Grafico',
            is3D: true,
            width: $('.cols_chart').width(),
            height: $('.cols_chart').width()
        };
        var ce = new google.visualization.PieChart(document.getElementById("chart"));
        ce.draw(new google.visualization.DataTable(my_data), ptions);
    }
    window.addEventListener('resize', function () {
        drawChart();
    }, false);

Non ho indicato come e dove prendo i dati, lo lascio a voi.

Come vedete impostiamo una dimensione pari a quella del div contenitore; essendo questo al 100%, si prenderà tutto lo spazio.

Poi impostiamo un evento relativo al resize della finestra, attraverso il quale ridisegniamo il grafico prendendo le misure attuali.

State attenti: i dati del grafico sono già impostati e non vengono riaggiornati!

Questo è importante nel caso in cui prendiamo i dati da AJAX; se li impostiamo male rischiamo di fare il refresh dei dati ad ogni resizing, con evidente perdaita di velcocità.

Enjoy!