Y Pos Grafiek
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
Post je script eens. ;)
Code (php)
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
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);
?>
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
Niemand een idee?