2012-01-18 16 views
8

Tengo un gráfico de columnas con un valor de eje x que es una fecha. Este gráfico funcionó esta mañana, pero se rompe de repente y muestra "No se admite la serie de barras con el eje del dominio de valor". como un mensaje de error El sitio web en cuestión no se ha actualizado en semanas.Gráfico de columnas con el eje de fecha no funciona

Mi código de construcción DataTable se parece a:

var data= new google.visualization.DataTable({ 
     "cols":[{"label":"Date","type":"date"},{"label":"New Users","type":"number"}], 
     "rows":[{"c":[{"v":new Date(1325656800000),"f":null},{"v":1355,"f":null}]}] 
    }); 

¿Qué puedo hacer para que mi código para solucionar este problema?

+0

Parece que está relacionado con el campo Fecha. Estoy teniendo el mismo problema. –

+0

Parece que lanzaron una nueva versión hoy: https://groups.google.com/forum/#!topic/google-visualization-api/1A-lfiFeLvc –

Respuesta

3

El problema es con los campos de fecha. He convertido el campo de fecha en una Cadena y ahora estoy usando una Cadena. En caso de que utilice formateadores, puede dar formato al valor antes de suministrarla al DataTable:

formatter.formatValue(date) 

supongo que esto es un error; Trataré de presentar un informe de error.

+1

http://code.google.com/p/google- visualización-api-issues/issues/detail? id = 795 & thanks = 795 & ts = 1326917431 –

+0

Parece que esta es una 'característica' – JeffreyABecker

+2

añadiendo 'strictFirstColumnType: false' a las opciones que se ingresan cuando se crea la tabla como una "temporal solución "para este problema. Consulte aquí: http://code.google.com/apis/chart/interactive/docs/customizing_axes.html#Help –

10

No es un error. La API de visualización de Google ha cambiado.

En http://code.google.com/apis/chart/interactive/docs/customizing_axes.html#Help, presentan algunas soluciones a este problema. Usando la opción:

strictFirstColumnType: false 

solo se puede utilizar como una solución temporal. Google dice:

Sin embargo, tenga en cuenta que esta opción solo está disponible por tiempo limitado y se eliminará en el futuro cercano.

La solución recomendada es que cambie los campos de Fecha en el eje x a Cadena. Lo he logrado utilizando el formateador antes de agregar valor al objeto DateTable.

var formatterMoney = new google.visualization.NumberFormat({suffix: ' zł', decimalSymbol: ',', groupingSymbol: ' '}); 
var formatterDate = new google.visualization.DateFormat({pattern: 'dd.MM.yyyy'}); 

var data = new google.visualization.DataTable(); 

data.addColumn('string', 'order date'); //used to be date field here 
data.addColumn('number', 'total amount'); 
data.addRow([formatterDate.formatValue(new Date('2011-12-20')),971793.93]); //used to be Date object, now is Date formated as String 
data.addRow([formatterDate.formatValue(new Date('2011-11-30')),1.0]); 
data.addRow([formatterDate.formatValue(new Date('2011-11-17')),1.0]); 
data.addRow([formatterDate.formatValue(new Date('2011-10-27')),1.72]); 
data.addRow([formatterDate.formatValue(new Date('2011-10-26')),10.27]); 

var chart = new google.visualization.ColumnChart(document.getElementById('chart_div')); 
formatterMoney.format(data, 1); 
chart.draw(data, {width: window.width, height: 400, hAxis: {direction: -1}}); 
+1

+1 por esta respuesta! Gracias por los ejemplos de código! –

Cuestiones relacionadas