Versio

Y Pos Grafiek

Overzicht Reageren

Sander

Sander

09/08/2006 16:27:00
Quote Anchor link
Ik ben een scripje aan het maken waarmee php aan de hand van getallen in een array een grafiek kan maken.

Dat werkt goed, alleen krijg ik het startpunt van de y-as niet goed.

Info:
Afbeelding groote (hoogte) waar de grafiek mag komen: van 8px naar 216px

max en min waarde in array: 300, 120 (de min en max kunnen verschillen)

Heeft er iemand een idee hoe ik dit kan maken en dat het juist werkt bij verschillende min en max waarde in de array?

Zie voorbeeld: http://85.145.1.14/grafiek.php
 
PHP hulp

PHP hulp

25/05/2012 19:56:22
Gesponsorde koppelingen:
 
Ramon

Ramon

09/08/2006 17:30:00
Quote Anchor link
Hallo,

Post je script eens. ;)
 
Sander

Sander

09/08/2006 17:32:00
Quote Anchor link
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?
header("content-type: image/png");

//achtergrond opvragen
$img = imagecreatefrompng("beurs.png");

$waarden = array("175", "170", "190", "150", "120", "150", "160", "180", "200", "40", "150", "120", "150", "160");

//voor de y as
$hoogste = max($waarden);
$kleinste = min($waarden);

$verschil = $hoogste - $kleinste;

$tussen_y = 217 / $verschil;

//voor de x-as
$lengte = count($waarden) -1;

$tussen_x = 268 / $lengte;

//kleuren
$red = imagecolorallocate($img, 255, 0, 0);
$green = imagecolorallocate($img, 0, 110, 26);
$black = imagecolorallocate($img, 255, 255, 255);

//y-as tekst toevoegen
$y_text_pos = 25;
$y_text = $hoogste;

$min_waarde_y = ($hoogste - $kleinste) / 6;

for($i=0; $i < 7; $i++) {
imagestring($img, 2, 8, $y_text_pos, round($y_text), $red);

$y_text = $y_text - $min_waarde_y;

$y_text_pos = $y_text_pos + 36;
}


//x-as tekst toevoegen
$x_text_pos = 18;
$x_text = 1;

$min_waarde = ($hoogste - $kleinste) / 5;

for($i=0; $i < 7; $i++) {
imagestring($img, 2, $x_text_pos, 256, "Dag ".$x_text, $red);

$x_text = $x_text + 1;

$x_text_pos = $x_text_pos + 53;
}


//start waarde
$x_pos = 34;
$y_pos = (217 / $verschil) / 2;

for($i=0; $i < $lengte; $i++) {
$y_verplaats = $tussen_y * ($waarden[1+$i] - $waarden [0+$i]);

//grafiek lijn
imageline($img, $x_pos, $y_pos, $x_pos + $tussen_x, $y_pos - $y_verplaats, $red);

//blokjes
imageline($img, $x_pos-1, $y_pos, $x_pos + 1, $y_pos, $red);
imageline($img, $x_pos-1, $y_pos+1, $x_pos + 1, $y_pos+1, $red);
imageline($img, $x_pos-1, $y_pos+2, $x_pos + 1, $y_pos+2, $red);
$x_pos = $x_pos + $tussen_x;
$y_pos = $y_pos - $y_verplaats;
}


imagepng($img);
imagedestroy($img);
?>
Gewijzigd op 01/01/1970 01:00:00 door Sander
 
Sander

Sander

10/08/2006 11:24:00
Quote Anchor link
Niemand een idee?
 



Overzicht Reageren

Get Adobe Flash player