Crear gráficos de barras con PHP

Esta es una forma bastante sencilla de crear gráficos mediante PHP y HTML. A partir de una array, que podría construirse a partir de datos extraidos de una base de datos, se extraen los literales, se calcula el porcentaje y se le asigna un color para cada una de las barras.

Supongamos que tenemos unas visitas que proceden: 220 de google, 160 directas, 80 de bloglines, 10 de del.icio.us y 35 de yahoo. El script para generar un gráfico podría ser:

<html>
<style type="text/css">
<!--
table {
	font: 11px Verdana, Arial, Helvetica, sans-serif;
	color: #777;
	padding:7px;
}
-->
</style>
<?php
$datosTabla = array(
		array( "directas", 160, "#BDDA4C"),
		array( "google", 220, "#FF9A68"),
		array( "bloglines", 80, "#69ABBF"),
		array( "del.icio.us", 10, "#FFDE68"),
		array( "yahoo", 35, "#AB6487")
);
$maximo = 0;
foreach ( $datosTabla as $ElemArray ) { $maximo += $ElemArray[1]; }
?>
<body>
<table width="400" cellspacing="0" cellpadding="2">
<?php foreach( $datosTabla as $ElemArray ) {
$porcentaje = round((( $ElemArray[1] / $maximo ) * 100),2);
?>
<tr>
	<td width="20%"><strong><?php echo( $ElemArray[0] ) ?></strong></td>
	<td width="10%"><?php echo( $porcentaje ) ?>%</td>
	<td>
		<table width="<?php echo($porcentaje) ?>%" bgcolor="<?php echo($ElemArray[2]) ?>">
		<tr><td></td></tr>
	</table>
	<</td>
	</tr>
	<?php } ?>
</table>
</body>
</html>

Ver ejemplo en funcionamiento » »