function generarGraficoB4() {
    google.charts.setOnLoadCallback(dibujarGraficoB4);
}



function dibujarGraficoB4() {

    // Create the data table.

    $.get(
            "GetResultsJSON", {
                _token: $('meta[name="csrf-token"]').attr('content'),
                id_reference: $("#id_corrida_analito").val()
            })
        .done(function (json_elements) {

            let dataElements_b4 = [
                ["x", "y", "Límite inferior", "Límite superior", "Limite APS inferior", "Limite APS superior"]
            ];

            let conjuntoB4_x = [];
            let conjuntoB4_y = [];
            let diferencia_maxima_permisible = parseFloat(json_elements["info_analito"]["diferencia_maxima_permisible"]/100);
            let limite_aps = parseFloat(json_elements["info_analito"]["limite_aps"]/100);
            // let limiteAps = parseFloat(json_elements["resultados"][0].pctje_analito);
            if (diferencia_maxima_permisible == 0) diferencia_maxima_permisible = 0.1;
            if (limite_aps == 0) limite_aps = 0.05;
            let maximo = diferencia_maxima_permisible > limite_aps ? diferencia_maxima_permisible : limite_aps;
            for (i = 0; i < json_elements["resultados"].length; i++) {
                dataElements_b4.push([
                    parseFloat(json_elements["resultados"][i].promedio_ambos_metodos),
                    parseFloat(json_elements["resultados"][i].metodo_prueba_menos_metodo_comparacion_pctje)/100,
                    -diferencia_maxima_permisible,
                    diferencia_maxima_permisible,
                    - limite_aps,
                    limite_aps
                ]);

                conjuntoB4_x.push(json_elements["resultados"][i].promedio_ambos_metodos);
                conjuntoB4_y.push(Math.abs(parseFloat(json_elements["resultados"][i].metodo_prueba_menos_metodo_comparacion_pctje)/100));
                conjuntoB4_y.push(-diferencia_maxima_permisible);
                conjuntoB4_y.push(diferencia_maxima_permisible);
                conjuntoB4_y.push(-limite_aps);
                conjuntoB4_y.push(limite_aps);
            }

            var data = google.visualization.arrayToDataTable(dataElements_b4);
            // yTicks = [
            //     0, 
            //     diferencia_maxima_permisible, 
            //     -diferencia_maxima_permisible,
            //     limiteAps,
            //     -limiteAps
            // ]
            // for (i = limiteAps + .05; i < diferencia_maxima_permisible - .03; i += .05) {
            //     yTicks.push(i);
            //     yTicks.push(-i);
            // }
            var options = {
                title: 'Gráfica de diferencias: delta de los métodos expresado en el promedio de los métodos vs promedio de métodos',
                    titleTextStyle: {
                        color: '#2874A6',
                        fontSize: 15,
                        alignment: 'center'
                    },
                hAxis: { // Eje X
                    title: "Promedio del método comparativo y el método de prueba",
                    viewWindow:{
                        min:Math.min.apply(null,conjuntoB4_x),
                        max:Math.max.apply(null,conjuntoB4_x)
                    }
                },
                vAxis: { // Eje Y
                    title: "Diferencia porcentual entre " + json_elements["info_analito"].nom_analizador_prueba + " y " + json_elements["info_analito"].nom_analizador_comparacion + " en " + json_elements["info_analito"].nom_unidad_metodologia_comparacion,
                    viewWindow:{
                        min:Math.min((-1*Math.max.apply(null,conjuntoB4_y)), -maximo - 0.005),
                        max:Math.max(Math.max.apply(null,conjuntoB4_y), maximo + 0.005)
                    },
                    format: "#%",
                    ticks: [
                        0,
                        diferencia_maxima_permisible,
                        -diferencia_maxima_permisible,
                        limite_aps,
                        -limite_aps
                    ]
                },
                series: {
                    0: {
                        visibleInLegend: true,
                        labelInLegend: "test individual"
                    },
                    1: {
                        type: 'line',
                        pointSize: 0,
                        opacity: 1,
                        color: "#E3251F",
                        lineWidth: 2
                    },
                    2: {
                        type: 'line',
                        pointSize: 0,
                        opacity: 1,
                        color: "#E3251F",
                        lineWidth: 2
                    },
                    3: {
                        type: 'line',
                        pointSize: 0,
                        opacity: 1,
                        color: "#095BDA",
                        lineWidth: 2
                    },
                    4: {
                        type: 'line',
                        pointSize: 0,
                        opacity: 1,
                        color: "#095BDA",
                        lineWidth: 2
                    }
                },
                chartArea: {
                    width: '89%',
                    height: '70%',
                    left: '10%'
                },
                legend: {
                    position: 'none'
                },
                colors: ["#000", "#000"],
                pointShape: 'square',
                pointSize: 8,
                opacity: 0.8,
                width: 480,
                height: 400,
            };

            var chart = new google.visualization.ScatterChart(document.getElementById('contenedor_grafica_B4'));

            google.visualization.events.addListener(chart, 'ready', function ()      {
                $("#base64_grafico_B4").val(chart.getImageURI());
            });

            chart.draw(data, options);
        })
        .fail(function () {
            notificacion("normal", "error", "Error al cargar la información de la gráfica B4...");
        })
        .always(function (sdsads) {
        });
}
