JavaScript - ¿Cómo rellenar una grafica Morris con un array?

 
Vista:
sin imagen de perfil

¿Cómo rellenar una grafica Morris con un array?

Publicado por Inma (3 intervenciones) el 05/11/2022 00:21:54
Hola tengo una duda sobre como rellenar los datos de la grafica morris con un array que obtengo del metedo fibonacci, no consigo crear la grafica con un array.. Adjunto codigo..

<!DOCTYPE html>
<html>
<title>Mi Grafica</title>

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>

<link rel="stylesheet" href="morris.css">
<script src="morris.js-0.5.1/morris.js" charset="utf-8"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg320mUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>

<body>
<div class="container">
<h1>Gráficas</h1>
<hr>
<div class="row">
<div class="col-md-6">
<h2>Gráfica de linea</h2>
<hr>
<div id="myfirstchart"></div>
</div>
</div>
</div>


> Script: Aqui saco la funcion de fibonacci para hacerlo array

<script>
var numerosY = []; //Numero del fibonacci
var numerosX = []; //Numeros de abajo de la grafica


function fibonacci(num) {
if (num < 2) {
return num;
}
else {
return fibonacci(num - 1) + fibonacci(num - 2);
}
}

//Pido un numero al usuario para hacer los arrays
var numeroEntra = prompt('Introduzca numero: ');

if (numeroEntra <= 0) {
alert('Introduzca un numero positivo');

}
else {

for (var j = 1; j <= numeroEntra; j++) {
numerosX.push(j);
}

for (var i = 0; i < numeroEntra; i++) {
/* numerosY = fibonacci(i); */
numerosY.push(fibonacci(i));
}
alert(numerosY);
alert(numerosX);
}




> Luego lo quiero plasmar ese array en una grafica.


new Morris.Line({

element: 'myfirstchart',



> Es aqui donde no encuentro solucion, porque no se me rrelena los datos
> de la grafica

//Array de datos de la grafica
data: [

{ year: numerosX.length, value: numerosY.length },

],

xkey: 'year',

ykeys: ['value'],

labels: ['Value']
});
</script>
</body>

</html>
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
sin imagen de perfil
Val: 40
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

¿Cómo rellenar una grafica Morris con un array?

Publicado por Marlon (90 intervenciones) el 05/11/2022 02:03:37
Le estas pasando la cantidad de elementos a la fabrica, mas no sus valores.
modifique un poco tu codigo para que quede un poco mas corto:

1
2
3
4
5
6
7
8
9
var numeroEntra = prompt('Introduzca numero: ');
if (numeroEntra <= 0) {
    alert('Introduzca un numero positivo');
}
else {
    for (var j = 1; j <= numeroEntra; j++) {
          numerosY.push({'secuence' : j, 'fibonacci' : fibonacci(j-1)});
    }
}

Solo deje un for ya que es necesario pasarle un objeto a la grafica, entonces por cada iteración agrega un objeto en cada posición del Array.


1
2
3
4
5
6
7
new Morris.Line({
  element: 'myfirstchart',
  data: numerosY
  xkey: 'secuence',
  ykeys: ['fibonacci'],
  labels: ['fibonacci']
});

Entonces ya en esta parte de la grafica le pasamos el array que contiene los datos.....
Ya tu modificaras los nombres de las variables a tu antojo.

Espero te sirva, Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

¿Cómo rellenar una grafica Morris con un array?

Publicado por Inma (3 intervenciones) el 06/11/2022 11:06:45
Muchisimas gracias he aplicado lo que me has descrito y funciona, lo unico que los valores del eje X no aparecen....

Captura1


Es decir que el parametro 'secuence' en el array array bidimensional, no me lo lee como un valor para ponerlo en la grafica como en este ejemplo...


Captura2

(La segunda captura es un ejemplo que he hecho a mano, es un simple ejemplo)

//Añado el CODIGO

1
2
3
4
5
6
7
8
9
var numeroEntra = prompt('Introduzca numero: ');
        if (numeroEntra <= 0) {
            alert('Introduzca un numero positivo');
        }
        else {
            for (var j = 1; j <= numeroEntra; j++) {
                numerosY.push({ 'secuence': j, 'fibonacci': fibonacci(j - 1) });
            }
        }

Entonces tendría que modificar 'secuence' por ['secuence']??

1
2
3
4
5
6
7
new Morris.Line({
            element: 'myfirstchart',
            data: numerosY,
            xkey: 'secuence',
            ykeys: ['fibonacci'],
            labels: ['fibonacci']
        });
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
sin imagen de perfil
Val: 40
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

¿Cómo rellenar una grafica Morris con un array?

Publicado por Marlon (90 intervenciones) el 08/11/2022 06:55:27
1
2
3
4
5
6
7
8
9
Morris.Line({
   element: 'myfirstchart',
   data: numerosY,
   xkey: 'secuence',
   ykeys: ['fibonacci'],
   labels: ['fibonacci'],
   xLabelMargin: 10,
   parseTime: false
});

parece que al agregarle las dos ultimas líneas "xLabelMargin" y "parseTime" funciona.

Espero te sirva, Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

¿Cómo rellenar una grafica Morris con un array?

Publicado por Inma (3 intervenciones) el 18/11/2022 21:45:27
Jooo muchísimas gracias por tu ayuda, con eso se resolvió el problema
que crack

¡¡¡MUUUUUCHIISIMAS GRACIAS!!!
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