ChartClass

Door - -, 20 jaar geleden, 3.903x bekeken

Met deze class kun je makkelijk grafieken tekenen. Hij is niet erg uitgebreid.

Een zipje met de code is hier af te halen.

Tips voor verbeteringen zijn welkom :)

Edit:
Versie 0.2b is er!

Changelog


Voorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
56
57
58
<?php

    include 'class.chart.php';
    include 'class.chartline.php';
    include 'class.color.php';
    include 'class.myexception.php';

    $chart = new Chart(500, 300, false);

    $white = new Color('#FFFFFF');
    $green_hard = new Color('#00FF00');
    $green_soft = new Color('#DDFFDD');
    $gray = new Color('#999999');
    $blue = new Color('#0000FF');
    $red = new Color('#FF0000');

    $chart->setBackgroundColor($white);
    $chart->setAxesColor($green_hard);
    $chart->setGridColor($green_soft);
    $chart->setTextColor($gray);

    $chart->setPadding(10,10,30,50);
    $chart->setGrid(true, true);
    $chart->setOffset(50, 30);
    $chart->setScale(10,10);

    $line = $chart->addLine();
    $points = array(
        array(10,20),
        array(14,10),
        array(30,50),
        array(52,40)
    );


    $line->addPoints($points);
    $line->setColor($red);
    $line->setThickness(2);

    $line2 = $chart->addLine();
    $line2->setColor($blue);
    $line2->setThickness(2);

    for($i = 0; $i < 20; $i++)
        $line2->addPoint(rand(3, 140), rand(5,52));

    $labelsVer = array(
        1 => 'here!',
        2 => 'put text',
        5 => 'You can'
    );

    $chart->setLabelsHor(2);
    $chart->setLabelsVer($labelsVer);

    header('Content-type: image/gif');
    $chart->createImage(IMAGETYPE_GIF);

?>

Voorbeeld: http://herjan.treurniet.com/phphulp/voorbeelden/chartclass/

Gesponsorde koppelingen

PHP script bestanden

  1. chartclass

 

Er zijn 7 reacties op 'Chartclass'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Klaasjan Boven
Klaasjan Boven
20 jaar geleden
 
0 +1 -0 -1
Gaaf script hoor Herjan, jammer (Bas) dat de reacties nu weg zijn
B a s
B a s
20 jaar geleden
 
0 +1 -0 -1
Tsja, sorry! :(
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Toch maar even opnieuw de reply die kees hiervoor al had gemaakt, mooie library voor verschillende soorten grafieken is JpGraph.

Mooi script Herjan.
Bo az
Bo az
20 jaar geleden
 
0 +1 -0 -1
Eventjes nog een opmerking over je switch statement in de methode createImage.
In plaats van die 'case null:' zou ik een default gebruiken.
Een ander punt maar dat is misschien ook persoonlijk is dat ik in plaats van een string een constante zou gebruiken. Je zou in dit geval zelfs voor voorgedefinieerde contanten kunnen kiezen. Een andere mogelijkheid zijn wat eigen class constants.
Rudie dirkx
rudie dirkx
20 jaar geleden
 
0 +1 -0 -1
Mooi man!
Zou wel alle 'private' veranderen naar 'protected', voor de mensen die een afgeleide class willen maken :) Protected is net zo goed als Private en je kan er iets meer mee... Wel makkelijk. Maar is mierenneuken. Vind het geweldige class!
- -
- -
20 jaar geleden
 
0 +1 -0 -1
Zo, update ;)
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
PHP Newbie
PHP Newbie
20 jaar geleden
 
0 +1 -0 -1
Ik wilde een grafiek hebben van 15 breed en 10 hoog. Maar dat had nogal wat voet in aarde:

$chart = new Chart(500, 300, false);
$chart->setPadding(10,10,30,50);

Echte grafiekbreedte is dus 500 - 60 = 440
Echte grafiekhoogte is dus 300 - 40 = 260

Ik wil 10 hoog en 15 breed, dus

440/15 = 29.3333
260/10 = 26

$chart->setOffset(); wordt dan
$chart->setOffset(26, 29);

Misschien iets om dit in de volgende versie iets gemakkelijker te maken

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. chartclass

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.