PHPlot

Antes de que empecemos a utilizar la librer�a PHPlot, deber�amos conocer la filosof�a principal de su funcionamiento (nos permitir� entender mejor el prop�sito de las diversas funciones de la librer�a), adem�s de la forma de preparar los datos presentados en la gr�fica.

El dibujo preparado con la ayuda de la librer�a PHPlot puede estar compuesto de varias gr�ficas, y cada una de ellas compuesta de un conjunto de elementos. Las funciones de la librer�a trabajan con el sistema de coordenadas cartesianas, con el origen en el punto medio de la intersecci�n de los ejes de la ordenada y de la abscisa, haciendo uso de las unidades caracter�sticas para el conjunto de datos presentados en la gr�fica. Estas funciones tambi�n pueden utilizar la unidad de resoluci�n de la pantalla (p�xeles); en este caso, el punto inicial del sistema de coordenadas tiene su origen en la esquina superior izquierda de la pantalla.

Es importante saber diferenciar entre un dibujo y una gr�fica. Un dibujo es un �rea en la que pueden haber una o m�s gr�ficas. En relaci�n con esto, la librer�a PHPlot proporciona dos utilidades DrawGraph() y PrintImage(). La primera de ellas sirve para colocar una gr�fica en la imagen, la segunda permite visualizar la imagen en la pantalla. Aparentemente, la diferencia es obvia, pero el programador que utiliza la librer�a PHPlot la detecta apenas cuando debe colocar m�s de una gr�fica en una imagen. En el caso de dibujar solamente una gr�fica, realizamos una operaci�n equivalente a desplegar la imagen (desde el punto de vista del usuario de la librer�a). Utilizamos entonces el m�todo DrawGraph(). Despu�s de haber analizado varios ejemplos, esta cuesti�n nos parecer� muy sencilla.

Antes de dibujar la primera gr�fica, debemos conocer la manera de preparar los datos que ser�n presentados. Estos datos deben ser transferidos a una tabla multidimensional, llamada array de datos (ing. data array). La ubicaci�n de todo los datos en una tabla, permite protegernos de errores que aparecer�an constantemente, en caso de que los valores del eje de las abscisas (X) fueran almacenados en otra tabla que los valores del eje de las ordenadas (Y), y los tama�os de estas tablas ser�an diferentes. Adem�s, los datos que se presentan en las gr�ficas, por lo general provienen de bases de datos, lo que facilita el traspaso con la ayuda de las funciones tales como *_fetch_row o *_fetch_array y directamente transferidos a la librer�a PHPlot, con un m�nimo esfuerzo del programador.

El array de datos es una tabla multidimensional, cuyos elementos principales son las llamadas, arrays de valores (ing. value array). En estos arrays tambi�n se almacenan las etiquetas de los datos y los valores de los ejes X e Y, adem�s � en caso de ser necesario, � las desviaciones (barras de error) para la serie de datos presentados en la gr�fica. A continucaci�n se presenta la estructura de datos que requiere la librer�a PHPlot:

$data_table=
   array($data_table_1,
         $data_table_2 ,
         $data_table_3 ,);

El primer elemento del array de valores siempre es la etiqueta de los datos, y los elementos siguientes, son los valores colocados en la gr�fica. Estos valores pueden ser interpretados por las funciones de la librer�a de tres maneras:

  • texto-dato,
  • dato-dato,
  • dato-dato-error.

En la interpretaci�n texto-dato (ing. Text-data), la distancia entre los puntos de datos que son visualizados sobre el eje de las X es igual. El primer elemento de cada array de valores representa la etiqueta en el eje X, en cambio, todos los elementos restantes de esta tabla ser�n los valores del eje Y. A continuaci�n se presenta un array que contiene datos de ejemplo:

$data=
   array(
      array("label1",2.4,3,3.7,4,5.1),
      array("label2",3,4,5,6,7),
      array("label3",1.1,2.2,3.3,4.4,5.5),
      array("label4",1.7,2,3,1.4,2)
);

Y �sta es la forma de su interpretaci�n desde el punto de vista dato-dato (cada par de valores entre par�ntesis representa un punto de datos dado):

(1,2.4),(1,3),(1,3.7),(1,4),(1,5.1)
(2,3),(2,4),(2,5),(2,6),(2,7)
(3,1.1),(3,2.2),(3,3.3),(3,4.4),(3,5.5)
(4,1.7),(4,2),(4,3),(4,1.4),(4,2)

Como vemos, aqu� tenemos cinco series de datos (representados por cinco elementos de arrays de valores, con la excepci�n del primer elemento que es la etiqueta en el eje X), de los cuales, cada una est� compuesta por cuatro puntos (representados por cuatro tablas de valores). Esta opci�n sirve perfectamente para representar datos empresariales, por ejemplo, los ingresos de un negocio por cada a�o de su actividad. En tal caso, las etiquetas ser�n los a�os y los puntos ser�n los ingresos en esos a�os.

La forma de interpretaci�n de datos de la gr�fica dato-dato (ing. Data-data) tiene gran similitud con la interpretaci�n anterior, con una excepci�n. El segundo elemento del array de valores representa la posici�n del punto de datos en el eje X. Por lo consiguiente, los puntos de datos ya no est�n � como en la interpretaci�n texto-datos � colocados en distancias iguales sobre el eje X. A continuaci�n se presenta la forma de interpretaci�n del array de datos presentada anteriormente bajo la interpretaci�n dato-dato (cada par de valores entre par�ntesis representa un punto de datos):

(2.4,3),(2.4,3.7),(2.4,4),(2.4,5.1)
(2,4),(3,5),(3,6),(3,7)
(1.1,2.2),(1.1,3.3),(1.1,4.4),(1.1,5.5)
(1.7,2),(1.7,3),(1.7,1.4),(1.7,2)

Como se puede ver, a pesar de un array de valores id�nticos, obtuvimos diferentes puntos de datos. A�n m�s, comparando con la interpretaci�n anterior la cantidad de series de datos se redujo en uno.

En la tercera interpretaci�n dato-dato-error (ing. data-data-error) los elementos consecutivos de cada array de valores representan la etiqueta en el eje de las ordenadas, el valor X, el valor Y, barra positiva de error y barra negativa de error (es decir, desviaci�n en la direcci�n de valores positivos de Y y desviaci�n en la direcci�n de valores negativos en Y).

El primero de los tipos de datos presentados es la interpretaci�n por defecto del array de datos. Si dese�ramos modificarla, deber�amos recurrir al m�todo SetDataType() del objeto de la clase PHPlot, proporcion�ndole en el par�metro el nombre del tipo de datos en ingl�s (es decir, text-data, data-data o data-data-error). A continuaci�n veremos como se realiza esto en la pr�ctica.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP