JavaScript - Ayuda para crear un algoritmo

   
Vista:

Ayuda para crear un algoritmo

Publicado por Dimas Antonio (3 intervenciones) el 16/05/2018 23:48:34
Bueno el objetivo que necesito es crear un algorimo que cuando me capture los datos del formulario y los grafique, ya logre eso con highcharts pero lo que quiero ahora es que segun las estadisticas, si es mayor 86 la barra me aparezca verde, si esta entre 85 y 76 me aparezca las barras de color naranja, y si es menor de 76 pues que me aparezca en rojo.

Parte de eso lo logre a punta de condicionales pero el problema que tengo, es que las barras como estan sujetas a los datos que introduzca el usuario, la cantidad de condicionales es muy extensa y pues el codigo seria muy largo, solo en esa parte, y esa es la duda no se si se pueda hacer de una forma corta
Sin-titulo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Ayuda para crear un algoritmo

Publicado por xve (1992 intervenciones) el 17/05/2018 07:34:13
Hola Dimas, no te entiendo mucho como lo estas haciendo, nos puedes mostrar el código o parte del mismo para ver lo que haces y lo que quieres hacer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda para crear un algoritmo

Publicado por Dimas Antonio (3 intervenciones) el 17/05/2018 17:47:13
Ok enviare dos archivos en los cuales el archivo index.php es donde se encuentra el formulario donde el usuario ingresa los datos, los datos que yo requiero para que grafique. Los campo es que quiero que grafique son solo de los campos de porcentaje, los cuales los encerre en las variables de javascript llamadas (CapPorcentaje1, CapPorcentaje2, CapPorcentaje3, CapPorcentaje4, CapPorcentaje5), sabiendo esto ya respectivamente

en el archivo graficas en esta parte del codigo que esta subrayado necesito que depende el numero que capture

continua despues del codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<script>
$(document).ready(function() {
    var chart = {
       type: 'bar'
    };
    var title = {
       text: 'Informacion de Porcentaje de las Rutas'
    };
    var subtitle = {
       text: CapControl
    };
    var xAxis = {
       categories: [CapRuta1, CapRuta2, CapRuta3, CapRuta4, CapRuta5],
       title: {
          text: 'Rutas Asignadas: '+CapControl
       }
    };
    var yAxis = {
       min: 0,
       title: {
          text: 'Porcentaje (%)',
          align: 'high'
       },
       labels: {
          overflow: 'justify'
       }
    };
    var tooltip = {
       valueSuffix: ' %'
    };
    var plotOptions = {
       bar: {
          dataLabels: {
             enabled: true
 
          }
       }
    };
    var legend = {
       layout: 'vertical',
       align: 'right',
       verticalAlign: 'top',
       x: -00,
       y: 100,
       floating: true,
       borderWidth: 1,
 
       backgroundColor: (
          (Highcharts.theme && Highcharts.theme.legendBackgroundColor) ||
             '#FFFFFF'),
       shadow: true
    };
    var credits = {
       enabled: false
    };
 
    var series = [
 
       {
          name: '% Porcentajes',
          data: [CapPorcentaje1, CapPorcentaje2, CapPorcentaje2, CapPorcentaje2, CapPorcentaje2],
 
       },
 
    ];
 
 
    var json = {};
    var json2={};
    json.chart = chart;
    json.title = title;
    json2.title = null;
    json.subtitle = subtitle;
    json.tooltip = tooltip;
    json.xAxis = xAxis;
    json.yAxis = yAxis;
    json.series = series;
    json.plotOptions = plotOptions;
    json2.legend = legend;
    json.credits = credits;
    $('#container').highcharts(json);
    $('#container2').highcharts(json2);
 
    //----------------------------------
 
 });
 
</script>


si el el porcentaje es mayor a 85 la barra se le añade color verde

si el porcentaje esta entre 75 y 85 la barra esta naranja

si el porcentaje esta menor a 75 la barra se pone de color rojo


mi idea para solucionarlo fue hacer condicionales, pero debido a que son 5 barras son demasiadas condicionales que tendria que escribir, esta es la ayuda que quiero que me ayuden, habra alguna forma de hacer que las barras cambiarlas de color que no sea por metodo de condicionales para que no tenga que escribir toda esa cantidad de condicionales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Ayuda para crear un algoritmo

Publicado por xve (1992 intervenciones) el 17/05/2018 20:22:21
Hola Dimas, ahora te entiendo... yo haria una función que me devolviera el color según el porcentaje... algo así:

1
2
3
4
5
6
7
8
9
function getColor(porcentaje) {
    if(porcentaje>85) {
        return "green";
    } else if(porcentaje<75) {
        return "red";
    } else {
        return "orange";
    }
}

Lo que no se como defines las variables CapPorcentaje1, ... con el color que tiene que tener cada una.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda para crear un algoritmo

Publicado por Dimas Antonio (3 intervenciones) el 17/05/2018 22:11:44
Ok lo que dices es correcto si solo estuvieramos fijando los datos de una variable.

Pero son 5 variables, las cuales son CapPorcentaje1,CapPorcentaje2,CapPorcentaje3,CapPorcentaje4,CapPorcentaje5.

Todas estas 5 variables vienen del formulario y las tiene que evaluar al mismo tiempo, sabiendo eso ya el condicional tiene que evaluar las 5 variables al tiempo, es por eso que yo decia que la cantidad de condicionales seria demasiado larga.

Para que entiendas mejor ahi va un ejemplo,

1
2
3
4
5
6
If(CapPorcentaje1>85 && CapPorcentaje2>85 && CapPorcentaje3>85 && CapPorcentaje4>85 && CapPorcentaje5>85){
 
Ejecute codigo de color donde los mayores a 85 cambien a color verde.
 
}
//El problema vendria si el usuario digita un valor sea menor a 85 por ejemplo si CapPorcentaje1 es menor a 85 tocaria hacer un condicional especifico donde CapPorcentaje1 es menor a 85 y los demas son mayor a 85, entonces la cantidad de condicionales es bastante considerable.


Para responder a tu pregunta te lo respondere con la imagen


Sin-titulo

Por ejemplo si quiero que la barra de C37 esta entre 75 y 85 entonces deberia tener un color naranja, para que esta tenga ese color, tendria que pasar el condicional que seria algo asi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
If(C37>74 && C37>86){
 
//El codigo seria asi
 
    var series = [ // variable que define que datos son las barras
 
 
 
       {
 
          name: '% Porcentajes', // nombre de la barra
 
          data: [C37, CapPorcentaje2, CapPorcentaje2, CapPorcentaje2, CapPorcentaje2],
          color: 'orange'
 
// la libreria highcharts lee las barras como si fuera un arreglo entonces si quiero que C37 que es la primera pocision dibuje en la primera linea deberia escribirlo en la primera linea
 
para cambiar el color solo debo agregar la funcion color y establecer color
 
 
 
       },
 
como son 3 colores lo que debo asignar debo copiar 3 veces lo que esta dentro de las 2 llaves que estan arriba mio  y establecerle un color diferente
 
 
    ];
 
}

espero haberme hecho entender
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad