Pregunta

Estoy desarrollando una aplicación que dibuja algunos gráficos y estoy usando Google Chart.Una vez que tengo todos los datos necesarios, construyo la URL dinámicamente.El problema es que Google Chart no siempre fija el máximo y el mínimo del gráfico a los valores que proporciono.Calculo los valores máximos y mínimos en función de los datos del carrito.Los configuré para que sean siempre un número entero para evitar cualquier problema.

Voy a poner un ejemplo con números:(Lo escribo en líneas diferentes con "comentarios (//)" para que pueda leerse fácilmente, aunque está en la misma línea que cualquier comentario)

http://chart.apis.google.com/chart?
cht=bvs&                                        //chart type
chs=250x250&                                    //chart size
chd=t:10,0|4.48,0|15,-58.42|0,4.73|0,73.44&       //chart data
chco=4D89D9,C6D9FD,FF0000,00FF00,0000FF&        //chart colors
chds=-59,80&                                    //data scaling
chf=bg,s,edf5ff|c,s,f6e426&                     //chart fill color
chtt=my_title&                                  //chart title
chdl=A|B|C|D|E&                                 //chart legend
chdlp=r&                                        //legend position
chxt=x,y&                                       //chart axis
chxl=0:|Col_1|Col_2&                            //Axis labels
chxr=1,-59,80&                                  //Axis range
chbh=r,1,0&                                     //Bar thickness and spacing 
chg=0,12.5                                      //Grid Lines

con esta configuración obtendría este gráfico.Como puede ver, la línea cero está sobre cero porque los datos no se han escalado, es una buena manera.

alt text

pero si cambio el máximo y mínimo del gráfico a -60,80 lo obtengo de buena manera

Sería este código:

http://chart.apis.google.com/chart?
cht=bvs&                                        //chart type
chs=250x250&                                    //chart size
chd=t:10,0|4.48,0|15,-58.42|0,4.73|0,73.44&       //chart data
chco=4D89D9,C6D9FD,FF0000,00FF00,0000FF&        //chart colors
chds=-60,80&                                    //data scaling (CHANGE IN THIS LINE)
chf=bg,s,edf5ff|c,s,f6e426&                     //chart fill color
chtt=my_title&                                  //chart title
chdl=A|B|C|D|E&                                 //chart legend
chdlp=r&                                        //legend position
chxt=x,y&                                       //chart axis
chxl=0:|Col_1|Col_2&                            //Axis labels
chxr=1,-60,80&                                  //Axis range (CHANGE IN THIS LINE)
chbh=r,1,0&                                     //Bar thickness and spacing 
chg=0,12.5                                      //Grid Lines

Y este gráfico que parece estar bien:

alt text

¿Alguien puede decirme por qué Google Chart se comporta de esta manera?

Gracias

¿Fue útil?

Solución

He cambiado itsetI obtener los valores máximo y mínimo a un número que corresponde a las divisiones comunes en una escala logarítmica. Es decir:

  • si el valor está dentro de (0,10) Me elegir un valor de número entero
  • si el valor está en el interior (10.100) elijo 10,20,30 ... 1000
  • si el valor está en el interior (100,1000) elijo 100200300 ... 10000 y así sucesivamente.

Con estos valores de gráficos de Google parece que funciona.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top