Ver Mensaje Individual
  #7 (permalink)  
Antiguo 02/07/2013, 14:22
Avatar de barna_rasta
barna_rasta
 
Fecha de Ingreso: agosto-2003
Mensajes: 214
Antigüedad: 20 años, 8 meses
Puntos: 11
Respuesta: Crear GRAFICOS desde consola con API google

Cita:
Es que parece que has puesto
< cat archivo

cuando debe ser

< archivo
Terrible error, ciego perdido !!!!!
------------------------------ Recapitulando sobre el problema --------------------------------------------------
me centrare solo en la parte de la asignacion de datos a la tabla para que el API pueda gestionarlo, el script entero esta en la cabecera del POST.
Teniendo los datos en negrita definidos y estaticos
Código:
function drawChart() {
        var data = google.visualization.arrayToDataTable([

['literal-1' , 'literal-2' ]
[ dato1-1 , dato1-2 ]
[ dato2-1 , dato2-2 ]
[ dato3-1 , dato3-2 ]

        ]);
yo me propuse realizar algo mas util y dinamico que permitiera la entrada de datos desde un fichero externo.
fue cuando cambie los valores fijos a valores guardados en array, leidos previamente de un 'csv' - poniendo las variables cambiantes en el formato entendible del API que es entre corchetes:

no crei inicialmente que funcionara, pero se lo comio!!! y funciona:
Código:
  function drawChart() {
        var data = google.visualization.arrayToDataTable([
	[${q[1]}],
	[${q[2]}],
	[${q[3]}],
	[${q[4]}],
	[${q[5]}],
	[${q[6]}],
	[${q[7]}],
	[${q[9]}],
	[${q[10]}],
	[${q[11]}],
	[${q[12]}],
	[${q[13]}]
        ]);
Y la pregunta/dilema/asunto es como reducir la deficion de los datos entre corchetes utilizando un bucle for o while , ya que en esta ocasion solo son 13 elementos a definir, pero si se tratara de dar - por ejemplo -, una grafica de temperaturas anual, dia a dia, ya serian 365 valores entre corchetes y no es que sea imposible, pero ......................
__________________________________________________ _______________
Durante estos dias estuve pensando en la 'burda' posibilidad de crear 2 archivos fijos:
zona alta:
Código:
<html>
  <head>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
        var data = google.visualization.arrayToDataTable([
zona baja:
Código:
 var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
        chart.draw(data, options);
      }
    </script>
  </head>
  <body>
    <div id="chart_div" style="width: 1000px; height: 600px;"></div>
  </body>
</html>
EOF
####################################### final del codigo generador

###################### Envio por email del resultado ##################
echo ''|mutt -s "Grafico Z45" -a $TEMP -b [[email protected]]
#######################
crear un archivo que me acumule directamente los datos necesarios en el formato valido:
Código:
['Mes','Ventas','Gastos'],
	[      '1', 287646,14587],
	[      '2', 385249,14463],
	[      '3', 404357,16486],
	[      '4', 367725,15428],
	[      '5', 361848,14433],
	[      '6', 356989,13454],
	[      '8', 287788,13351],
	[      '9', 343504,14460],
	[     '10', 327881,14022],
	[     '11', 285226,13867],
	[     '12', 296442,15402]
Y utilizar la fusion de los tres, una forma muy poco ortodoxa pero que quizas hasta que no me ilumine un poco mas sea valida -por el momento-

Última edición por barna_rasta; 02/07/2013 a las 14:28