Código de PHP - Crear una imagen con un gráfico de barras con PHP

Imágen de perfil
Val: 704
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Crear una imagen con un gráfico de barras con PHPgráfica de visualizaciones


PHP

Publicado el 4 de Marzo del 2021 por Kata (74 códigos)
412 visualizaciones desde el 4 de Marzo del 2021
Código que genera una imagen gif con un gráfico de barras según información de nuestro array.

Puedes especificar los colores y tipo de letra.
Para que se muestren los textos, tiene que disponer del archivo true type de la fuente que vayas a utilizar en la carpeta donde se encuentra el php. Para este ejemplo, he utilizado arialbd.ttf.

grafica-de-barras-con-php-2

grafica-de-barras-con-php-1

1

Publicado el 4 de Marzo del 2021gráfica de visualizaciones de la versión: 1
413 visualizaciones desde el 4 de Marzo del 2021
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
// definimos las columnas con sus valores
$cells = array("pantalones"=>70, "zapatos"=>34, "camisas"=>22, "calcetines"=>60, "faldas"=>77);
 
$max = max($cells);
$total = count($cells);
 
// definicion de tamaños
$totalwidth = 400;
$totalheight = 300;
$xgutter = 20; // margen derecho y izquierdo
$ygutter = 20; // marge superior y inferior
$internalgap = 10; // espacio entre las barras
$bottomspace = 30; // espacio en la parte inferior ademas del margen
 
putenv('GDFONTPATH=' . realpath('.'));
$font = "arialbd.ttf";
 
header("Content-type: image/gif");
 
$graphCanX = ($totalwidth - $xgutter*2);
$graphCanY = ($totalheight - $ygutter*2 - $bottomspace); // starting draw position x - axis
$posX = $xgutter; // starting draw pos - y -  axis
$posY = $totalheight - $ygutter - $bottomspace;
$cellwidth = (int)(($graphCanX - ($internalgap * ($total-1))) / $total) ;
$textsize = (int)($bottomspace);
 
// ajustamos el tamaño de la fuente segun la anchura de la letra en el espacio
foreach ($cells as $key => $val) {
    while (true) {
        $box = ImageTTFbBox($textsize, 0, $font, $key);
        $textWidth = abs($box[2]);
        if ($textWidth < $cellwidth) {
            break;
        }
        $textsize--;
    }
}
 
$image = imagecreate($totalwidth, $totalheight);
$fondo = ImageColorAllocate($image, 20, 100, 87);
$barra = ImageColorAllocate($image, 100, 56, 56);
$letra = ImageColorAllocate($image, 255, 255, 255);
reset($cells);
foreach ($cells as $key => $val) {
    $cellheight = (int) (($val/$max) * $graphCanY);
    $center = (int)($posX+($cellwidth/2));
    imagefilledrectangle($image, $posX, ($posY-$cellheight), ($posX+$cellwidth), $posY, $barra);
    $box = ImageTTFbBox($textsize, 0, $font, $key);
    $tw = $box[2];
    ImageTTFText($image, $textsize, 0, ($center-($tw/2)), ($totalheight-$ygutter), $letra, $font, $key);
    $posX += ($cellwidth + $internalgap);
}
imagegif($image);
?>



Comentarios sobre la versión: 1 (0)


No hay comentarios
 

Comentar la versión: 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s6922