PHPlot no muestra una imagen
joomla graph (3)
Debe configurar los encabezados antes de mostrar la imagen. Los datos reales en la captura de pantalla se ven como un archivo de imagen: colóquelo antes de su última línea.
header("Content-type: image/png");
Acabo de descargar PHPlot y lo incluí en un archivo php. Traté de obtener un ejemplo de trabajo, pero solo hay algunos signos, no un gráfico.
Estoy usando XAMPP y Joomla.
Esto me muestra:
Necesito GD activado, solo una captura de pantalla de mi configuración de GD:
¿Hice algo mal?
Intenté colocar el archivo fuera de joomla y lo coloqué en xampp; funciona. Pero necesito ese gráfico dentro de mi instalación de Joomla.
Código:
<?php
header(''Content-Type: image/png'');
require ''/libraries/phplot-6.1.0/phplot.php'';
$data = array(
array('''', 1800, 5), array('''', 1810, 7), array('''', 1820, 10),
array('''', 1830, 13), array('''', 1840, 17), array('''', 1850, 23),
array('''', 1860, 31), array('''', 1870, 39), array('''', 1880, 50),
array('''', 1890, 63), array('''', 1900, 76), array('''', 1910, 92),
array('''', 1920, 106), array('''', 1930, 123), array('''', 1940, 132),
array('''', 1950, 151), array('''', 1960, 179), array('''', 1970, 203),
array('''', 1980, 227), array('''', 1990, 249), array('''', 2000, 281),
);
$plot = new PHPlot(800, 600);
$plot->SetImageBorderType(''plain'');
$plot->SetPlotType(''lines'');
$plot->SetDataType(''data-data'');
$plot->SetDataValues($data);
# Main plot title:
$plot->SetTitle(''US Population, in millions'');
# Make sure Y axis starts at 0:
$plot->SetPlotAreaWorld(NULL, 0, NULL, NULL);
$plot->DrawGraph();
// phpinfo();
?>
Olvidaste configurar el Encabezado.
<?php
header(''Content-Type: image/gif'');
require ''/../../../../../../libraries/phplot-6.1.0/phplot.php'';
$data = array(
array('''', 1800, 5), array('''', 1810, 7), array('''', 1820, 10),
array('''', 1830, 13), array('''', 1840, 17), array('''', 1850, 23),
array('''', 1860, 31), array('''', 1870, 39), array('''', 1880, 50),
array('''', 1890, 63), array('''', 1900, 76), array('''', 1910, 92),
array('''', 1920, 106), array('''', 1930, 123), array('''', 1940, 132),
array('''', 1950, 151), array('''', 1960, 179), array('''', 1970, 203),
array('''', 1980, 227), array('''', 1990, 249), array('''', 2000, 281),
);
$plot = new PHPlot(800, 600);
$plot->SetImageBorderType(''plain'');
$plot->SetPlotType(''lines'');
$plot->SetDataType(''data-data'');
$plot->SetDataValues($data);
# Main plot title:
$plot->SetTitle(''US Population, in millions'');
# Make sure Y axis starts at 0:
$plot->SetPlotAreaWorld(NULL, 0, NULL, NULL);
$plot->DrawGraph();
?>
ADVERTENCIA: tenga en cuenta que configure el encabezado solo una vez. Cualquier salida antes del header
terminará en una advertencia "Encabezado ya enviado".
Para obtener más información, consulte http://php.net/manual/en/function.header.php
Tuve el mismo problema al usar PHPlot con AJAX. La solución es crear un nuevo archivo con solo el código del gráfico, por ejemplo createGraph.php. Así que llamo a este archivo en mi etiqueta img así: echo ''<img src = "createGraph.php" />''
;
También puedo pasar a través de los parámetros GET para personalizar el gráfico, de la siguiente manera: echo ''<img src = "createGraph.php?title=My_Graph&val1=1&val2=2" />'';
y createGraph.php, obtener a través de GET la información dinámica de la tabla.