(Andamenti regionali)
 
(16 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
= COVID19 - Monitoraggio ed Analisi della situazione italiana=
+
<html>
== Andamento nazionale ==
+
<h1> COVID19 - Monitoraggio ed Analisi della situazione italiana</h1>
 +
<h2> Andamento nazionale </h1>
  
== Andamenti regionali ==
+
<div id="myDiv2" style="height:500px;"></div>
<html>
+
  <div style="height:150px;"></div>
 +
<h2> Andamenti regionali </h2>
  
 
   <div>
 
   <div>
Riga 19: Riga 21:
 
     </div>
 
     </div>
 
   </div>
 
   </div>
   <div id="myDiv" style="width:60%;height:500px;"></div>
+
   <div id="myDiv" height:500px;"></div>
 +
  <div style="height:150px;"></div>
  
 +
<h2> Disclaimer </h2>
 +
Dati forniti dal Ministero della Salute, elaborazione e gestione dati a cura del Dipartimento della Protezione Civile: https://github.com/pcm-dpc/COVID-19
 +
 +
Rielaborazione a cura del Control of Dynamic System Lab, Politecnico di Bari
  
 
<script>
 
<script>
        Plotly.d3.csv('https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-regioni/dpc-covid19-ita-regioni.csv', function(err, rows){
+
Plotly.d3.csv('https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-regioni/dpc-covid19-ita-regioni.csv', function(err, rows){
 +
 
 +
    function unpack(rows, key) {
 +
        return rows.map(function(row) { return row[key]; });
 +
    }
 +
 
 +
    var allRegionNames = unpack(rows, 'denominazione_regione'),
 +
        allDay = unpack(rows, 'data'),
 +
        allRicoverati = unpack(rows, 'ricoverati_con_sintomi'),
 +
        allTi = unpack(rows, 'terapia_intensiva'),
 +
        allTo = unpack(rows, 'totale_ospedalizzati'),
 +
        allIdom = unpack(rows, 'isolamento_domiciliare'),
 +
        allAttPos = unpack(rows, 'totale_attualmente_positivi'),
 +
        allNewPos = unpack(rows, 'nuovi_attualmente_positivi'),
 +
        allDimGuariti = unpack(rows, 'dimessi_guariti'),
 +
        allMorti = unpack(rows, 'deceduti'),
 +
        allTotCasi = unpack(rows, 'totale_casi'),
 +
        allTamponi = unpack(rows, 'tamponi'),
 +
 
 +
        listofRegions = [],
 +
        currentCountry,
 +
        currentGdp = [],
 +
        currentYear = [];
 +
        currTitle = 'Abruzzo';
 +
        currallRicoverati = [];
 +
        currallTi = [];
 +
        currallTo = [];
 +
        currallIdom = [];
 +
        currallAttPos = [];
 +
        currallNewPos = [];
 +
        currallDimGuariti = [];
 +
        currallMorti = [];
 +
        currallTotCasi = [];
 +
        currallTamponi = [];
 +
 
 +
        currallMortiTi = [];
 +
        currallMortiOsp = [];
 +
        //allDay = allDay.split(' ')[0];
  
         function unpack(rows, key) {
+
    for (var i = 0; i < allRegionNames.length; i++ ){
             return rows.map(function(row) { return row[key]; });
+
         if (listofRegions.indexOf(allRegionNames[i]) === -1 ){
 +
             listofRegions.push(allRegionNames[i]);
 
         }
 
         }
 +
    }
  
         var allRegionNames = unpack(rows, 'denominazione_regione'),
+
    function getRegionData(chosenCountry) {
            allDay = unpack(rows, 'data'),
+
         currTitle = chosenCountry;
            allRicoverati = unpack(rows, 'ricoverati_con_sintomi'),
+
        currentYear = [];
            allTi = unpack(rows, 'terapia_intensiva'),
+
        currallRicoverati = [];
            allTo = unpack(rows, 'totale_ospedalizzati'),
+
        currallTi = [];
            allIdom = unpack(rows, 'isolamento_domiciliare'),
+
        currallTo = [];
            allAttPos = unpack(rows, 'totale_attualmente_positivi'),
+
        currallIdom = [];
            allNewPos = unpack(rows, 'nuovi_attualmente_positivi'),
+
        currallAttPos = [];
            allDimGuariti = unpack(rows, 'dimessi_guariti'),
+
        currallNewPos = [];
            allMorti = unpack(rows, 'deceduti'),
+
        currallDimGuariti = [];
            allTotCasi = unpack(rows, 'totale_casi'),
+
        currallMorti = [];
            allTamponi = unpack(rows, 'tamponi'),
+
        currallTotCasi = [];
 +
        currallTamponi = [];
  
            listofRegions = [],
+
        currallMortiTi = [];
            currentCountry,
+
        currallMortiOsp = [];
            currentGdp = [],
 
            currentYear = [];
 
            currTitle = 'Abruzzo';
 
            currallRicoverati = [];
 
            currallTi = [];
 
            currallTo = [];
 
            currallIdom = [];
 
            currallAttPos = [];
 
            currallNewPos = [];
 
            currallDimGuariti = [];
 
            currallMorti = [];
 
            currallTotCasi = [];
 
            currallTamponi = [];
 
  
            currallMortiTi = [];
+
        for (var i = 0 ; i < allRegionNames.length ; i++){
             currallMortiOsp = [];
+
             if ( allRegionNames[i] === chosenCountry ) {
            //allDay = allDay.split(' ')[0];
+
                currentYear.push(allDay[i].split(' ')[0]);
 +
                currallRicoverati.push(allRicoverati[i]);
 +
                currallTi.push(allTi[i]);
 +
                currallTo.push(allTo[i]);
 +
                currallIdom.push(allIdom[i]);
 +
                currallAttPos.push(allAttPos[i]);
 +
                currallNewPos.push(allNewPos[i]);
 +
                currallDimGuariti.push(allDimGuariti[i]);
 +
                currallMorti.push(allMorti[i]);
 +
                currallTotCasi.push(allTotCasi[i]);
 +
                currallTamponi.push(allTamponi[i]);
  
        for (var i = 0; i < allRegionNames.length; i++ ){
+
                currallMortiTi.push(parseInt(allTi[i])+parseInt(allMorti[i]));
            if (listofRegions.indexOf(allRegionNames[i]) === -1 ){
+
                 currallMortiOsp.push(parseInt(allTo[i])+parseInt(allMorti[i]));
                 listofRegions.push(allRegionNames[i]);
 
 
             }
 
             }
 
         }
 
         }
 +
    };
  
        function getRegionData(chosenCountry) {
+
    // Default Region Data
            currTitle = chosenCountry;
+
    setBubblePlot('Abruzzo');
            currentYear = [];
 
            currallRicoverati = [];
 
            currallTi = [];
 
            currallTo = [];
 
            currallIdom = [];
 
            currallAttPos = [];
 
            currallNewPos = [];
 
            currallDimGuariti = [];
 
            currallMorti = [];
 
            currallTotCasi = [];
 
            currallTamponi = [];
 
  
            currallMortiTi = [];
+
    function setBubblePlot(chosenCountry) {
            currallMortiOsp = [];
+
        getRegionData(chosenCountry);
  
            for (var i = 0 ; i < allRegionNames.length ; i++){
+
        var trace1 = {
                if ( allRegionNames[i] === chosenCountry ) {
+
            visible: 'legendonly',
                    currentYear.push(allDay[i].split(' ')[0]);
+
            x: currentYear,
                    currallRicoverati.push(allRicoverati[i]);
+
            y: currallRicoverati,
                    currallTi.push(allTi[i]);
+
           
                    currallTo.push(allTo[i]);
+
            name: 'Ricoverati con sintomi',
                    currallIdom.push(allIdom[i]);
+
            mode: 'markers',
                    currallAttPos.push(allAttPos[i]);
+
            marker: {
                    currallNewPos.push(allNewPos[i]);
+
                size: 6,
                    currallDimGuariti.push(allDimGuariti[i]);
+
                opacity: 1
                    currallMorti.push(allMorti[i]);
+
            }
                    currallTotCasi.push(allTotCasi[i]);
+
        };
                    currallTamponi.push(allTamponi[i]);
 
  
                    currallMortiTi.push(parseInt(allTi[i])+parseInt(allMorti[i]));
+
        var trace2 = {
                    currallMortiOsp.push(parseInt(allTo[i])+parseInt(allMorti[i]));
+
            visible: 'legendonly',
                 }
+
            x: currentYear,
 +
            y: currallTi,
 +
           
 +
            mode: 'markers',
 +
            name: 'Terapia Intensiva',
 +
            marker: {
 +
                size: 6,
 +
                 opacity: 1
 
             }
 
             }
 
         };
 
         };
  
         // Default Region Data
+
         var trace3 = {
         setBubblePlot('Abruzzo');
+
            visible: 'legendonly',
 +
            x: currentYear,
 +
            y: currallTo,
 +
           
 +
            mode: 'markers',
 +
            name: 'Totale ospedalizzati',
 +
            marker: {
 +
                size: 6,
 +
                opacity: 1,
 +
                symbol: 'triangle-down'
 +
            }
 +
        };
 +
 
 +
         var trace4 = {
 +
            visible: 'legendonly',
 +
            x: currentYear,
 +
            y: currallIdom,
 +
           
 +
            mode: 'markers',
 +
            name: 'Isolamento domiciliare',
 +
            marker: {
 +
                size: 6,
 +
                opacity: 1,
 +
                symbol: 'triangle-left'
 +
            }
 +
        };
 +
 
 +
        var trace5 = {
 +
            visible: 'legendonly',
 +
            x: currentYear,
 +
            y: currallAttPos,
 +
           
 +
            mode: 'markers',
 +
            name: 'Totale attualmente positivi',
 +
            marker: {
 +
                size: 6,
 +
                opacity: 1,
 +
                symbol: 'triangle-right'
 +
            }
 +
        };
  
         function setBubblePlot(chosenCountry) {
+
         var trace6 = {
             getRegionData(chosenCountry);
+
             visible: 'legendonly',
 +
            x: currentYear,
 +
            y: currallNewPos,
 +
           
 +
            mode: 'markers',
 +
            name: 'Nuovi attualmente positivi',
 +
            marker: {
 +
                size: 6,
 +
                opacity: 1,
 +
                symbol: 'pentagon'
 +
            }
 +
        };
  
            var trace1 = {
+
        var trace7 = {
                visible: 'legendonly',
+
            x: currentYear,
                 x: currentYear,
+
            y: currallDimGuariti,
                 y: currallRicoverati,
+
           
 +
            mode: 'markers',
 +
            name: 'Dimessi guariti',
 +
            marker: {
 +
                 size: 6,
 +
                 opacity: 1,
 +
                symbol: 'triangle-up'
 
                  
 
                  
                name: 'Ricoverati con sintomi',
+
            }
                mode: 'markers',
+
        };
                marker: {
 
                    size: 6,
 
                    opacity: 1
 
                }
 
            };
 
  
            var trace2 = {
+
        var trace8 = {
                visible: 'legendonly',
+
            x: currentYear,
                 x: currentYear,
+
            y: currallMorti,
                 y: currallTi,
+
           
 +
            mode: 'markers',
 +
            name: 'Deceduti',
 +
            marker: {
 +
                 size: 6,
 +
                 opacity: 1,
 +
                symbol: 'star'
 
                  
 
                  
                mode: 'markers',
+
            }
                name: 'Terapia Intensiva',
+
        };
                marker: {
+
 
                    size: 6,
+
        var trace9 = {
                    opacity: 1
+
            x: currentYear,
                 }
+
            y: currallTotCasi,
            };
+
           
 +
            mode: 'markers',
 +
            name: 'Totale casi',
 +
            marker: {
 +
                size: 6,
 +
                opacity: 1,
 +
                 symbol: 'diamond'
 +
            }
 +
        };
  
            var trace3 = {
+
        var trace10 = {
                visible: 'legendonly',
+
            visible: 'legendonly',
                 x: currentYear,
+
            x: currentYear,
                 y: currallTo,
+
            y: currallTamponi,
 +
           
 +
            mode: 'markers',
 +
            name: 'Tamponi',
 +
            marker: {
 +
                size: 6,
 +
                 opacity: 1,
 +
                symbol: 'square'
 +
            }
 +
        };
 +
 
 +
        var trace11 = {
 +
            x: currentYear,
 +
            y: currallMortiTi,
 +
           
 +
            mode: 'markers',
 +
            name: 'Deceduti+Terapia Intensiva',
 +
            marker: {
 +
                 size: 6,
 +
                opacity: 1,
 +
                symbol: 'cross'
 +
            }
 +
        };
 +
 
 +
        var trace12 = {
 +
            x: currentYear,
 +
            y: currallMortiOsp,
 +
           
 +
            mode: 'markers',
 +
            name: 'Deceduti+Terapia Intensiva+Ricoverati',
 +
            marker: {
 +
                size: 6,
 +
                opacity: 1,
 +
                symbol: 'x'
 
                  
 
                  
                 mode: 'markers',
+
            }
                 name: 'Totale ospedalizzati',
+
        };
                marker: {
+
        var d = new Date();
                    size: 6,
+
        if (d.getHours()<18){
                    opacity: 1,
+
            var when = d.getDate()-1;
                    symbol: 'triangle-down'
+
        }else{
                 }
+
            var when = d.getDate();
             };
+
        }
 +
        [dx, dy,lname, when] = get_logistic(chosenCountry,when);
 +
 
 +
        var trace13 = {
 +
            x: dx,
 +
            y: dy,
 +
            mode: 'line',
 +
            name: lname,
 +
            line: {
 +
                color: 'rgba(255,0,0,0.5)',
 +
                width: 4
 +
            }
 +
        };
 +
 
 +
 
 +
        [dxa, dya,lnamea,when] = get_logistic(chosenCountry,when);
 +
        var trace14 = {
 +
            x: dxa,
 +
            y: dya,
 +
            mode: 'line',
 +
            name: lnamea,
 +
            line: {
 +
                color: 'rgba(255,120,120,0.5)',
 +
                width: 2
 +
            }
 +
        };
 +
 
 +
        [dxa, dya,lnamea,when] = get_logistic(chosenCountry,when);
 +
        var trace15 = {
 +
            x: dxa,
 +
            y: dya,
 +
            mode: 'line',
 +
            name: lnamea,
 +
            line: {
 +
                color: 'rgba(255,180,180,0.5)',
 +
                 width: 2
 +
            }
 +
        };
 +
 
 +
        [dxa, dya,lnamea,when] = get_logistic(chosenCountry,when);
 +
        var trace16 = {
 +
            x: dxa,
 +
            y: dya,
 +
            mode: 'line',
 +
            name: lnamea,
 +
            line: {
 +
                color: 'rgba(255,210,210,0.5)',
 +
                width: 2
 +
            }
 +
        };
 +
 
 +
        var data = [trace8,
 +
                    trace7,
 +
                    trace11,
 +
                    trace12,
 +
                    trace9,
 +
                    trace1,
 +
                    trace2,
 +
                    trace3,
 +
                    trace4,
 +
                    trace5,
 +
                    trace6,
 +
                    trace10,
 +
                    trace13, trace14, trace15, trace16];
 +
 
 +
        var updatemenus=[
 +
            {
 +
                buttons: [
 +
                    {
 +
                        args: [{'yaxis.type': 'linear',
 +
                                'yaxis.tickmode':'auto'}],
 +
                        label: 'Linear',
 +
                        method: 'relayout'
 +
                    },
 +
                    {
 +
                        args: [{'yaxis.type':'log',
 +
                                'yaxis.dtick':1}],
 +
                        label:'SemiLog',
 +
                        method:'relayout'
 +
                    }
 +
                ],
 +
                direction: 'left',
 +
                pad: {'r': 10, 't': 10},
 +
                showactive: true,
 +
                type: 'buttons',
 +
                x: 0.1,
 +
                xanchor: 'left',
 +
                y: 1.1,
 +
                yanchor: 'top'
 +
            }
 +
        ]
 +
 
 +
        var layout = {
 +
            title: 'Andamento regionale ' + currTitle,
 +
            height: 600,
 +
            plot_bgcolor: "#000",
 +
            //width: 800,
 +
            margin: { l: 40, r: 0},
 +
            updatemenus: updatemenus,
 +
            showlegend: true,
 +
            legend: { orientation: "h" ,
 +
                    x: 0,
 +
                    y: -0.5},
 +
            xaxis: {
 +
                tickmode: "linear", //  If "linear", the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick`
 +
                tick0: '2020-02-24',
 +
                gridcolor: '#555',
 +
                dtick: 7 * 24 * 60 * 60 * 1000
 +
            },
 +
            yaxis: {
 +
                autorange: true,
 +
                gridcolor: '#555',
 +
                //type: 'log',
 +
                //fixedrange: true,
 +
                //range: [0,3.70]
 +
                //range: [0,5000]
 +
            }
 +
        };
 +
        var options = {
 +
            scrollZoom: true,
 +
            displayModeBar: false
 +
        };
 +
        Plotly.newPlot('myDiv', data, layout,options);
 +
    };
 +
 
 +
    var innerContainer = document.querySelector('[data-num="0"'),
 +
        plotEl = innerContainer.querySelector('.plot'),
 +
        countrySelector = innerContainer.querySelector('.countrydata');
 +
 
 +
    function assignOptions(textArray, selector) {
 +
        for (var i = 0; i < textArray.length;  i++) {
 +
            var currentOption = document.createElement('option');
 +
            currentOption.text = textArray[i];
 +
            selector.appendChild(currentOption);
 +
        }
 +
    }
 +
    function getRandomColor(){
 +
        var r = 0;
 +
        var g = 0;
 +
        var b = 0;
 +
        r = getRandomInt(0, 255);
 +
        g = getRandomInt(0, 255);
 +
        b = getRandomInt(0, 255);
 +
        return [r,g,b];
 +
    }
 +
 
 +
    function getRandomInt(min, max) {
 +
        min = Math.ceil(min);
 +
        max = Math.floor(max);
 +
        return Math.floor(Math.random() * (max - min)) + min; //Il max è escluso e il min è incluso
 +
    }
 +
    function get_logistic(chosenCountry,when){
 +
        //document.write('./'+chosenCountry + '.csv');
 +
        //
 +
       
 +
        var nome = when+'.03 - Fitting';
 +
        var x = [];
 +
        var y = [];
 +
        var url = "https://raw.githubusercontent.com/vtandrea/labtest/master/"+'2020-03-'+when+chosenCountry+".csv";
 +
        console.log(url);
 +
        var request = new XMLHttpRequest(); 
 +
        request.open("GET", url, false); 
 +
        request.send(null); 
 +
       
 +
        var csvData = new Array();
 +
        var jsonObject = request.responseText.split(/\r?\n|\r/);
 +
        for (var i = 0; i < jsonObject.length; i++) {
 +
            csvData.push(jsonObject[i].split(','));
 +
        }
 +
        for (var i=1;i<csvData.length;i++){
 +
            x.push(csvData[i][0]);
 +
            y.push(csvData[i][1]);
 +
           
 +
        }
 +
        //if(1){
 +
        if (y[40] == y[41]){
 +
            var x = [];
 +
            var y = [];
 +
            var nome = 'Empty';
 +
        }
 +
        //console.log(csvData[0][1]);
 +
        when = when-1;
 +
        return [x,y, nome,when];
 +
    }
 +
 
 +
    assignOptions(listofRegions, countrySelector);
 +
 
 +
    function updateCountry(){
 +
        setBubblePlot(countrySelector.value);
 +
    }
 +
 
 +
    countrySelector.addEventListener('change', updateCountry, false);
 +
});
 +
</script>
 +
 
 +
 
 +
 
 +
<script>
 +
Plotly.d3.csv('https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-andamento-nazionale/dpc-covid19-ita-andamento-nazionale.csv', function(err, rows){
 +
 
 +
    function unpack(rows, key) {
 +
        return rows.map(function(row) { return row[key]; });
 +
    }
 +
 
 +
    var allRegionNames = unpack(rows, 'stato'),
 +
        allDay = unpack(rows, 'data'),
 +
        allRicoverati = unpack(rows, 'ricoverati_con_sintomi'),
 +
        allTi = unpack(rows, 'terapia_intensiva'),
 +
        allTo = unpack(rows, 'totale_ospedalizzati'),
 +
        allIdom = unpack(rows, 'isolamento_domiciliare'),
 +
        allAttPos = unpack(rows, 'totale_attualmente_positivi'),
 +
        allNewPos = unpack(rows, 'nuovi_attualmente_positivi'),
 +
        allDimGuariti = unpack(rows, 'dimessi_guariti'),
 +
        allMorti = unpack(rows, 'deceduti'),
 +
        allTotCasi = unpack(rows, 'totale_casi'),
 +
        allTamponi = unpack(rows, 'tamponi'),
 +
 
 +
        listofRegions = [],
 +
        currentCountry,
 +
        currentGdp = [],
 +
        currentYear = [];
 +
        currTitle = 'ITA';
 +
        currallRicoverati = [];
 +
        currallTi = [];
 +
        currallTo = [];
 +
        currallIdom = [];
 +
        currallAttPos = [];
 +
        currallNewPos = [];
 +
        currallDimGuariti = [];
 +
        currallMorti = [];
 +
        currallTotCasi = [];
 +
        currallTamponi = [];
 +
 
 +
        currallMortiTi = [];
 +
        currallMortiOsp = [];
 +
        //allDay = allDay.split(' ')[0];
 +
 
 +
    for (var i = 0; i < allRegionNames.length; i++ ){
 +
        if (listofRegions.indexOf(allRegionNames[i]) === -1 ){
 +
            listofRegions.push(allRegionNames[i]);
 +
        }
 +
    }
 +
 
 +
    function getRegionData(chosenCountry) {
 +
        currTitle = chosenCountry;
 +
        currentYear = [];
 +
        currallRicoverati = [];
 +
        currallTi = [];
 +
        currallTo = [];
 +
        currallIdom = [];
 +
        currallAttPos = [];
 +
        currallNewPos = [];
 +
        currallDimGuariti = [];
 +
        currallMorti = [];
 +
        currallTotCasi = [];
 +
        currallTamponi = [];
 +
 
 +
        currallMortiTi = [];
 +
        currallMortiOsp = [];
 +
 
 +
        for (var i = 0 ; i < allRegionNames.length ; i++){
 +
            if ( allRegionNames[i] === chosenCountry ) {
 +
                currentYear.push(allDay[i].split(' ')[0]);
 +
                currallRicoverati.push(allRicoverati[i]);
 +
                currallTi.push(allTi[i]);
 +
                currallTo.push(allTo[i]);
 +
                currallIdom.push(allIdom[i]);
 +
                currallAttPos.push(allAttPos[i]);
 +
                currallNewPos.push(allNewPos[i]);
 +
                currallDimGuariti.push(allDimGuariti[i]);
 +
                currallMorti.push(allMorti[i]);
 +
                currallTotCasi.push(allTotCasi[i]);
 +
                currallTamponi.push(allTamponi[i]);
 +
 
 +
                currallMortiTi.push(parseInt(allTi[i])+parseInt(allMorti[i]));
 +
                currallMortiOsp.push(parseInt(allTo[i])+parseInt(allMorti[i]));
 +
            }
 +
        }
 +
    };
 +
 
 +
    // Default Region Data
 +
    setBubblePlot('ITA');
 +
 
 +
    function setBubblePlot(chosenCountry) {
 +
        getRegionData(chosenCountry);
 +
 
 +
        var trace1 = {
 +
            visible: 'legendonly',
 +
            x: currentYear,
 +
            y: currallRicoverati,
 +
           
 +
            name: 'Ricoverati con sintomi',
 +
            mode: 'markers',
 +
            marker: {
 +
                size: 6,
 +
                 opacity: 1
 +
            }
 +
        };
 +
 
 +
        var trace2 = {
 +
            visible: 'legendonly',
 +
            x: currentYear,
 +
            y: currallTi,
 +
           
 +
            mode: 'markers',
 +
            name: 'Terapia Intensiva',
 +
            marker: {
 +
                size: 6,
 +
                opacity: 1
 +
            }
 +
        };
 +
 
 +
        var trace3 = {
 +
            visible: 'legendonly',
 +
            x: currentYear,
 +
            y: currallTo,
 +
           
 +
            mode: 'markers',
 +
            name: 'Totale ospedalizzati',
 +
            marker: {
 +
                size: 6,
 +
                opacity: 1,
 +
                symbol: 'triangle-down'
 +
            }
 +
        };
 +
 
 +
        var trace4 = {
 +
            visible: 'legendonly',
 +
            x: currentYear,
 +
            y: currallIdom,
 +
           
 +
            mode: 'markers',
 +
            name: 'Isolamento domiciliare',
 +
            marker: {
 +
                 size: 6,
 +
                opacity: 1,
 +
                symbol: 'triangle-left'
 +
            }
 +
        };
 +
 
 +
        var trace5 = {
 +
            visible: 'legendonly',
 +
            x: currentYear,
 +
            y: currallAttPos,
 +
           
 +
             mode: 'markers',
 +
            name: 'Totale attualmente positivi',
 +
            marker: {
 +
                size: 6,
 +
                opacity: 1,
 +
                symbol: 'triangle-right'
 +
            }
 +
        };
  
            var trace4 = {
+
        var trace6 = {
                visible: 'legendonly',
+
            visible: 'legendonly',
                x: currentYear,
+
            x: currentYear,
                y: currallIdom,
+
            y: currallNewPos,
               
+
           
                mode: 'markers',
+
            mode: 'markers',
                name: 'Isolamento domiciliare',
+
            name: 'Nuovi attualmente positivi',
                marker: {
+
            marker: {
                    size: 6,
+
                size: 6,
                    opacity: 1,
+
                opacity: 1,
                    symbol: 'triangle-left'
+
                symbol: 'pentagon'
                }
+
            }
            };
+
        };
  
            var trace5 = {
+
        var trace7 = {
                visible: 'legendonly',
+
            x: currentYear,
                 x: currentYear,
+
            y: currallDimGuariti,
                 y: currallAttPos,
+
           
 +
            mode: 'markers',
 +
            name: 'Dimessi guariti',
 +
            marker: {
 +
                 size: 6,
 +
                 opacity: 1,
 +
                symbol: 'triangle-up'
 
                  
 
                  
                mode: 'markers',
+
            }
                name: 'Totale attualmente positivi',
+
        };
                marker: {
 
                    size: 6,
 
                    opacity: 1,
 
                    symbol: 'triangle-right'
 
                }
 
            };
 
  
            var trace6 = {
+
        var trace8 = {
                visible: 'legendonly',
+
            x: currentYear,
                 x: currentYear,
+
            y: currallMorti,
                 y: currallNewPos,
+
           
 +
            mode: 'markers',
 +
            name: 'Deceduti',
 +
            marker: {
 +
                 size: 6,
 +
                 opacity: 1,
 +
                symbol: 'star'
 
                  
 
                  
                mode: 'markers',
+
            }
                name: 'Nuovi attualmente positivi',
+
        };
                marker: {
 
                    size: 6,
 
                    opacity: 1,
 
                    symbol: 'pentagon'
 
                }
 
            };
 
  
            var trace7 = {
+
        var trace9 = {
                x: currentYear,
+
            x: currentYear,
                y: currallDimGuariti,
+
            y: currallTotCasi,
               
+
           
                mode: 'markers',
+
            mode: 'markers',
                name: 'Dimessi guariti',
+
            name: 'Totale casi',
                marker: {
+
            marker: {
                    size: 6,
+
                size: 6,
                    opacity: 1,
+
                opacity: 1,
                    symbol: 'triangle-up'
+
                symbol: 'diamond'
                   
+
            }
                }
+
        };
            };
 
  
            var trace8 = {
+
        var trace10 = {
                x: currentYear,
+
            visible: 'legendonly',
                y: currallMorti,
+
            x: currentYear,
               
+
            y: currallTamponi,
                mode: 'markers',
+
           
                name: 'Deceduti',
+
            mode: 'markers',
                marker: {
+
            name: 'Tamponi',
                    size: 6,
+
            marker: {
                    opacity: 1,
+
                size: 6,
                    symbol: 'star'
+
                opacity: 1,
                   
+
                symbol: 'square'
                }
+
            }
            };
+
        };
  
            var trace9 = {
+
        var trace11 = {
                x: currentYear,
+
            x: currentYear,
                y: currallTotCasi,
+
            y: currallMortiTi,
               
+
           
                mode: 'markers',
+
            mode: 'markers',
                name: 'Totale casi',
+
            name: 'Deceduti+Terapia Intensiva',
                marker: {
+
            marker: {
                    size: 6,
+
                size: 6,
                    opacity: 1,
+
                opacity: 1,
                    symbol: 'diamond'
+
                symbol: 'cross'
                }
+
            }
            };
+
        };
  
            var trace10 = {
+
        var trace12 = {
                visible: 'legendonly',
+
            x: currentYear,
                 x: currentYear,
+
            y: currallMortiOsp,
                 y: currallTamponi,
+
           
 +
            mode: 'markers',
 +
            name: 'Deceduti+Terapia Intensiva+Ricoverati',
 +
            marker: {
 +
                 size: 6,
 +
                 opacity: 1,
 +
                symbol: 'x'
 
                  
 
                  
                mode: 'markers',
+
            }
                name: 'Tamponi',
+
        };
                marker: {
+
        var d = new Date();
                    size: 6,
+
        if (d.getHours()<18){
                    opacity: 1,
+
            var when = d.getDate()-1;
                    symbol: 'square'
+
        }else{
                }
+
             var when = d.getDate();
             };
+
        }
 +
        console.log(when);
 +
        [dx, dy,lname, when] = get_logistic(when);
  
            var trace11 = {
+
        var trace13 = {
                x: currentYear,
+
            x: dx,
                y: currallMortiTi,
+
            y: dy,
               
+
            mode: 'line',
                mode: 'markers',
+
            name: lname,
                name: 'Deceduti+Terapia Intensiva',
+
            line: {
                marker: {
+
                color: 'rgba(255,0,0,0.5)',
                    size: 6,
+
                width: 4
                    opacity: 1,
+
            }
                    symbol: 'cross'
+
        };
                }
 
            };
 
  
            var trace12 = {
 
                x: currentYear,
 
                y: currallMortiOsp,
 
               
 
                mode: 'markers',
 
                name: 'Deceduti+Terapia Intensiva+Ricoverati',
 
                marker: {
 
                    size: 6,
 
                    opacity: 1,
 
                    symbol: 'x'
 
                   
 
                }
 
            };
 
  
            var data = [trace8,  
+
        [dxa, dya,lnamea,when] = get_logistic(when);
                        trace7,  
+
        var trace14 = {
                        trace11,  
+
            x: dxa,
                        trace12,  
+
            y: dya,
                        trace9,
+
            mode: 'line',
                        trace1,  
+
            name: lnamea,
                        trace2,  
+
            line: {
                        trace3,  
+
                color: 'rgba(255,120,120,0.5)',
                        trace4,  
+
                width: 2
                        trace5,
+
            }
                        trace6,
+
        };
                        trace10];
 
  
            var updatemenus=[
+
        [dxa, dya,lnamea,when] = get_logistic(when);
                {
+
        var trace15 = {
                    buttons: [
+
            x: dxa,
                        {
+
            y: dya,
                            args: [{'yaxis.type': 'linear',
+
            mode: 'line',
                                    'yaxis.tickmode':'auto'}],
+
            name: lnamea,
                            label: 'Linear',
+
            line: {
                            method: 'relayout'
+
                color: 'rgba(255,180,180,0.5)',
                        },
+
                width: 2
                        {
+
            }
                            args: [{'yaxis.type':'log',
+
        };
                                    'yaxis.dtick':1}],
 
                            label:'SemiLog',
 
                            method:'relayout'
 
                        }
 
                    ],
 
                    direction: 'left',
 
                    pad: {'r': 10, 't': 10},
 
                    showactive: true,
 
                    type: 'buttons',
 
                    x: 0.1,
 
                    xanchor: 'left',
 
                    y: 1.1,
 
                    yanchor: 'top'
 
                }
 
            ]
 
  
            var layout = {
+
        [dxa, dya,lnamea,when] = get_logistic(when);
                title: 'Andamento regionale ' + currTitle,
+
        var trace16 = {
                height: 600,
+
            x: dxa,
                plot_bgcolor: "#000",
+
            y: dya,
                //width: 800,
+
            mode: 'line',
                margin: { l: 40, r: 0},
+
            name: lnamea,
                updatemenus: updatemenus,
+
            line: {
                showlegend: true,
+
                 color: 'rgba(255,210,210,0.5)',
                legend: { orientation: "h" ,
+
                 width: 2
                        x: 0,
+
             }
                        y: -0.5},
 
                xaxis: {
 
                    tickmode: "linear", //  If "linear", the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick`
 
                    tick0: '2020-02-24',
 
                    gridcolor: '#555',
 
                    dtick: 24 * 60 * 60 * 1000
 
                 },
 
                yaxis: {
 
                    autorange: true,
 
                    gridcolor: '#555',
 
                    //type: 'log',
 
                    //fixedrange: true,
 
                    //range: [0,3.70]
 
                    //range: [0,5000]
 
                 }
 
            };
 
            var options = {
 
                scrollZoom: true,
 
                displayModeBar: false
 
             };
 
            Plotly.newPlot('myDiv', data, layout,options);
 
 
         };
 
         };
  
         var innerContainer = document.querySelector('[data-num="0"'),
+
         var data = [trace8,
            plotEl = innerContainer.querySelector('.plot'),
+
                    trace7,
            countrySelector = innerContainer.querySelector('.countrydata');
+
                    trace11,
 +
                    trace12,
 +
                    trace9,
 +
                    trace1,
 +
                    trace2,
 +
                    trace3,
 +
                    trace4,
 +
                    trace5,
 +
                    trace6,
 +
                    trace10,
 +
                    trace13, trace14, trace15, trace16];
  
         function assignOptions(textArray, selector) {
+
         var updatemenus=[
            for (var i = 0; i < textArray.length;  i++) {
+
            {
                 var currentOption = document.createElement('option');
+
                buttons: [
                 currentOption.text = textArray[i];
+
                    {
                 selector.appendChild(currentOption);
+
                        args: [{'yaxis.type': 'linear',
 +
                                'yaxis.tickmode':'auto'}],
 +
                        label: 'Linear',
 +
                        method: 'relayout'
 +
                    },
 +
                    {
 +
                        args: [{'yaxis.type':'log',
 +
                                'yaxis.dtick':1}],
 +
                        label:'SemiLog',
 +
                        method:'relayout'
 +
                    }
 +
                ],
 +
                direction: 'left',
 +
                pad: {'r': 10, 't': 10},
 +
                 showactive: true,
 +
                type: 'buttons',
 +
                x: 0.1,
 +
                xanchor: 'left',
 +
                 y: 1.1,
 +
                 yanchor: 'top'
 
             }
 
             }
 +
        ]
 +
 +
        var layout = {
 +
            title: 'Andamento Italia',
 +
            height: 600,
 +
            plot_bgcolor: "#000",
 +
            //width: 800,
 +
            margin: { l: 40, r: 0},
 +
            updatemenus: updatemenus,
 +
            showlegend: true,
 +
            legend: { orientation: "h" ,
 +
                    x: 0,
 +
                    y: -0.5},
 +
            xaxis: {
 +
                tickmode: "linear", //  If "linear", the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick`
 +
                tick0: '2020-02-24',
 +
                gridcolor: '#555',
 +
                dtick: 7 * 24 * 60 * 60 * 1000
 +
            },
 +
            yaxis: {
 +
                autorange: true,
 +
                gridcolor: '#555',
 +
                //type: 'log',
 +
                //fixedrange: true,
 +
                //range: [0,3.70]
 +
                //range: [0,5000]
 +
            }
 +
        };
 +
        var options = {
 +
            scrollZoom: true,
 +
            displayModeBar: false
 +
        };
 +
        Plotly.newPlot('myDiv2', data, layout,options);
 +
    };
 +
 +
    var innerContainer = document.querySelector('[data-num="0"'),
 +
        plotEl = innerContainer.querySelector('.plot'),
 +
        countrySelector = innerContainer.querySelector('.countrydata');
 +
 +
    function assignOptions(textArray, selector) {
 +
        for (var i = 0; i < textArray.length;  i++) {
 +
            var currentOption = document.createElement('option');
 +
            currentOption.text = textArray[i];
 +
            selector.appendChild(currentOption);
 
         }
 
         }
 +
    }
  
         assignOptions(listofRegions, countrySelector);
+
    function get_logistic(when){
 +
        //document.write('./'+chosenCountry + '.csv');
 +
        //
 +
       
 +
        var nome = when+'.03 - Fitting';
 +
        var x = [];
 +
        var y = [];
 +
        var url = "https://raw.githubusercontent.com/vtandrea/labtest/master/"+'2020-03-'+when+"Italia.csv";
 +
        console.log(url);
 +
        var request = new XMLHttpRequest(); 
 +
         request.open("GET", url, false);  
 +
        request.send(null); 
 +
       
 +
        var csvData = new Array();
 +
        var jsonObject = request.responseText.split(/\r?\n|\r/);
 +
        for (var i = 0; i < jsonObject.length; i++) {
 +
            csvData.push(jsonObject[i].split(','));
 +
        }
 +
        for (var i=1;i<csvData.length;i++){
 +
            x.push(csvData[i][0]);
 +
            y.push(csvData[i][1]);
 +
           
 +
        }
 +
        //if(1){
 +
        if (y[40] == y[41]){
 +
            var x = [];
 +
            var y = [];
 +
            var nome = 'Empty';
 +
        }
 +
        //console.log(csvData[0][1]);
 +
        when = when-1;
 +
        return [x,y, nome,when];
 +
    }
  
        function updateCountry(){
+
    /*assignOptions(listofRegions, countrySelector);
            setBubblePlot(countrySelector.value);
+
 
        }
+
    function updateCountry(){
 +
        setBubblePlot(countrySelector.value);
 +
    }
  
        countrySelector.addEventListener('change', updateCountry, false);
+
    countrySelector.addEventListener('change', updateCountry, false);*/
    });
+
});
 
</script>
 
</script>
 
</html>
 
</html>
 
== Disclaimer ==
 
Dati forniti dal Ministero della Salute, elaborazione e gestione dati a cura del Dipartimento della Protezione Civile: https://github.com/pcm-dpc/COVID-19
 
 
Rielaborazione a cura del Control of Dynamic System Lab, Politecnico di Bari
 

Versione attuale delle 16:47, 23 Mar 2020

COVID19 - Monitoraggio ed Analisi della situazione italiana

Andamento nazionale

Andamenti regionali

Regione:

Disclaimer

Dati forniti dal Ministero della Salute, elaborazione e gestione dati a cura del Dipartimento della Protezione Civile: https://github.com/pcm-dpc/COVID-19 Rielaborazione a cura del Control of Dynamic System Lab, Politecnico di Bari

COVID19 - Monitoraggio ed Analisi della situazione italiana[edit]

Andamento nazionale[edit]

Andamenti regionali[edit]

Regione:

Disclaimer[edit]

Dati forniti dal Ministero della Salute, elaborazione e gestione dati a cura del Dipartimento della Protezione Civile: https://github.com/pcm-dpc/COVID-19

Rielaborazione a cura del Control of Dynamic System Lab, Politecnico di Bari