Hay una manera de trazar un gráfico con Google chart API para que los valores del eje X son los días en un mes?

Tengo los datos de los puntos que no se incluyen con la misma frecuencia. Por ejemplo:

Date - Value
1/1/2009 - 100
1/5/2009 - 150
1/6/2009 - 165
1/13/2009 - 200
1/20/2009 - 350
1/30/2009 - 500

Quiero hacer una tabla que va a separar a cada punto de datos con la distancia relativa con base en el tiempo durante un mes. Esto se puede hacer con Excel, pero ¿cómo puedo calcular y mostrar con gráficos de Google?

Otras soluciones libres similares a los gráficos de Google o una biblioteca libre que puede ser utilizado con ASP.NET también son bienvenidos.

InformationsquelleAutor jvanderh | 2009-06-19

5 Comentarios

  1. 20

    ACTUALIZACIÓN ahora se admite directamente en la API de gráficos de uso de los gráficos avanzados «anotado en la tabla de la característica – https://developers.google.com/chart/interactive/docs/gallery/annotationchart

    He hecho esto en mi Refrito De La Base De Datos De Estadísticas De La gráfico (aunque las fechas resultó ser espaciados uniformemente, por lo que no es exactamente de demostrar que es hacer esto).

    Primer lugar, usted desea conseguir su general período de tiempo, que será similar al de la anchura total de la tabla. Para ello restamos la primera fecha de la última. Yo prefiero usar Unix epoch marcas de tiempo como son números enteros y fáciles de comparar de esta manera, pero fácilmente podría calcular el número de segundos, etc.

    Ahora, el bucle a través de sus datos. Para cada fecha queremos que la percentil en el período total que a la fecha es desde el principio (es decir, la fecha más temprana es 0, la última es de 100). Para cada fecha, primero se desea calcular la distancia de la presente fecha partir de la primera fecha en el conjunto de datos. Esencialmente, «¿qué tan lejos estamos desde el principio». Así, reste la primera fecha a partir de la presente fecha. Entonces, para encontrar el percentil, dividimos el distancia de la presente fecha por el general período de tiempo, y luego se multiplica por 100 y truncar o alrededor de cualquier decimal para dar a nuestros integral coordenada x.

    Y es tan simple como eso! El x-valores van desde 0 (el lado izquierdo de la gráfica) a 100 (el lado derecho) y cada punto de datos se sitúan a una distancia desde el inicio respectivos de su verdadero la distancia temporal.

    Si usted tiene alguna pregunta, no dude en preguntar! Me pueden enviar pesudocode o PHP, si lo desea.

    • tiene sentido…incluso mejor de lo que estaba haciendo, y suena simple para aplicar…gracias!!!
    • Que funciona bastante bien. La cuestión es cómo garantizar el derecho de x-etiquetas. Tengo una izquierda sesgada conjunto de datos de punto quiero la escala a la que representan. Si yo sólo la de dividir la totalidad de la gama por que digamos cinco de la x-etiqueta no corresponde a la del punto de datos.
    • En su respuesta «Refrito de la Base de datos de Estadísticas de» enlace está muerto.
  2. 11

    Tuve el mismo problema, encontrar los diagramas de dispersión en Google Charts, que hace exactamente lo que es necesario.

    Aquí está el código que terminó con (tomó el suyo como un punto de partida):

    function drawVisualization() {
        //Create and populate the data table.
        var data = new google.visualization.DataTable();
        data.addColumn('date', 'Date');
        data.addColumn('number', 'Quantity');
        data.addRow([new Date(2011, 0, 1), 10])
        data.addRow([new Date(2011, 1, 1), 15])
        data.addRow([new Date(2011, 3, 1), 40])
        data.addRow([new Date(2011, 6, 1), 50])
    
    
        //Create and draw the visualization.
        var chart = new google.visualization.ScatterChart(
            document.getElementById('visualization'));
        chart.draw(data, {title: 'Test',
                          width: 600, height: 400,
                          vAxis: {title: "cr", titleTextStyle: {color: "green"}},
                          hAxis: {title: "time", titleTextStyle: {color: "green"}},
                          lineWidth: 1}
                  );
    }

    Nota que parecen meses a contar desde 0, es decir, de enero es 0, febrero es 1, …, diciembre 11.

  3. 1

    Esto se puede hacer con Google charts con bastante facilidad, pero su aplicación debe calcular las etiquetas

    La chxl x del gráfico de la etiqueta de parámetro es el que usted necesita. El siguiente ejemplo las etiquetas de un eje y con los números en 50 pasos, y la parte inferior con las fechas

    chxl=0:|0|50|100|150|200|250|300|350|400|450|500|1:|16/01/2009|26/01/2009|6/02/2009
    • Él no está preguntando acerca de las etiquetas, él le pregunta acerca de la obtención de los datos en el eje x posición en relación a la fecha de la respectiva posición en el rango de tiempo general.
    • ok. Pero no los puntos de datos 1 (16/1), 2(26/1) y 3(6/2) ser separadas en la salida de la tabla con la misma distancia, aunque hay 10 días entre los primeros 2 y 12 entre los últimos 2?
    • Exactamente Dustin, que es lo que quiero decir. Hasta sé lo que estoy haciendo es repetir la anterior fecha valor tantas veces como sea necesario hasta una nueva fecha está disponible. De esta manera tengo una cantidad fija de puntos de datos (30 por ejemplo) y muchos de los valores repetidos.
  4. 0

    Hai. Estoy pensando que a lo largo de las mismas líneas. Puedo prever los problemas donde las etiquetas de sobrescribir el uno al otro, y pueden pensar sólo dos enfoques.

    1) averiguar cómo muchos de los personajes en cada fecha, según formato (lun/mar, el lunes/martes, 1 de enero/1 de febrero, 1 de enero, 29 de febrero, 14/2/2010 ..etc), a continuación, calcular cuántas etiquetas se puede encajar en su gráfico de ancho (que podría ser retorcido, involucrando char ancho en píxeles (más fácil para las fuentes fijas), o simplemente un par de juicio & errores).

    Por supuesto, las etiquetas se podría alinear directamente con los datos.

    2) el uso de múltiples etiquetas del eje X y el lugar de su fechas verticalmente.

Dejar respuesta

Please enter your comment!
Please enter your name here