|
Sorularınızı
sorarken başlıkta "Acil, yardım, biri yardım etsin, bir bakın, çözümü nedir?,
yardım edecek yok mu?" gibi başlıklar kullanmayınız. Başlıklar okuyan
kişilere mesaj içeriği ile ilgili bilgi vermesi için var. Ve bilgi vermeyen
başlık yöneticiler tarafından kilitlenebilir, silinebilir, değiştirilebilir.
| Turkish Nuke Forum Ana Sayfası
-> Programlama Dilleri -> PHP ile Grafik Yaratma Örneği |
|
|
| |
|
Katılımcı

Kayıt: Mar 30, 2005
Mesajlar: 91
Nerden: kayseri
|
|
| Kod: |
<?
/*---------------------------------------------------------------------------
// PHP ILE AYLIK SUTUN GRAFIK CIZIM ORNEGI
// aylik.php
//
// M. Yilmaz SUSLU, Subat 2003
// Yüzüncü Yil Universitesi, VAN
// yilmazsuslu@hotmail.com
---------------------------------------------------------------------------*/
header ("Content-type: image/png");
//--- Genel Degiskenler -----------------------------------------------------
$w = 500; // Resmin Genisligi [400-500 arasi ideal]
$h = 250; // Resmin Yuksekligi [250-350 arasi ideal]
$Baslik = "2002 Yili Aylik Ziyaretci Istatistigi";
$BaslikFont = 3; // Basligin font buyuklugu [1-5 arasi, 3 ideal]
$GraphName = "TEKIL ZIYARET / AY";
$BoslukLeft = ($w-(($BaslikFont+3)*strlen("$Baslik")))/2; // Ortalama sol margin
$BoslukTop = ($h+(5*strlen("$GraphName")))/2; // Ortalama ust margin (GraphName)
$YatayGrid = 5; // yatay olarak cizilecek klavuz sayisi
$LeftM = ($w*(12/100))/2;
$TopM = ($h*(12/100))/2;
$SutunGen = $w*6/100;
//--- End of Genel Degiskenler ----------------------------------------------
//--- Grafige Dökülecek Veriler ---------------------------------------------
/* Bu verileri ayri satirlarda verdim ama bir while döngüsüne girilip
veritabanindan ya da dosyadan da okutularak ya da $_GET ya da $_POST
degiskeni olarak bu degerler dinamik olarak verilebilir */
$Veri[0] = 125;
$Veri[1] = 570;
$Veri[2] = 870;
$Veri[3] = 918;
$Veri[4] = 759;
$Veri[5] = 298;
$Veri[6] = 890;
$Veri[7] = 987;
$Veri[8] = 1280;
$Veri[9] = 318;
$Veri[10] = 419;
$Veri[11] = 697;
$Aylar = array("Oca","Sub","Mar","Nis","May","Haz","Tem","Agu","Eyl","Eki","Kas", "Ara");
//--- End of Grafige Dökülecek Veriler --------------------------------------
$VeriKova = array_values($Veri); // Veri dizisinin bire bir kopyasi
sort($VeriKova);
$Min = $VeriKova[0];
$Max = $VeriKova[11];
$Top = array_sum($Veri);
$Resim = imagecreate($w,$h);
//--- Renk Tanimlamalari ----------------------------------------------------
$Siyah = imagecolorAllocate($Resim, 0, 0, 0);
$Beyaz = imagecolorallocate($Resim, 255, 255, 255);
$Mavi = imagecolorallocate($Resim, 100, 100, 255);
$Kirmizi = imagecolorAllocate($Resim, 255, 0, 0);
$Yesil = imagecolorAllocate($Resim, 0, 150, 0);
$Gri = imagecolorAllocate($Resim, 200, 200, 200);
//--- End of Renk Tanimlamalari ---------------------------------------------
imagefilledrectangle($Resim, 0, 0, $w, $h ,$Beyaz);
imagerectangle($Resim, 0, 0, $w-1, $h-1, $Siyah);
//--- Gridleri Cizmeye Basliyoruz -------------------------------------------
$CAAM = ($h-($TopM*4))/$YatayGrid; // Cizgi Araligi Artis Miktari
$Cizgi[0] = $TopM*2; // En ustteki Grid icin top margin degeri
$MaxTemp = $Max; // Maximum degeri kova degiskene attik lazim olacak
if(strlen($MaxTemp)>=3):
$CizgiSayim = strrev(substr(strrev("$MaxTemp"), 0, 2));
$WhileGo = 100;
else:
$CizgiSayim = strrev(substr(strrev("$MaxTemp"), 0, 1));
$WhileGo = 10;
endif;
while(intval($CizgiSayim)<$WhileGo)
{
$CizgiSayim++;
$MaxTemp++;
}
$CizgiSayi[0] = $MaxTemp;
for($i=0; $i<=$YatayGrid; $i++)
{
if(empty($CizgiSayi[$i]))
{
$CizgiSayi[$i] = round($MaxTemp*(($YatayGrid-$i)/$YatayGrid));
$Cizgi[$i] = $Cizgi[$i-1]+$CAAM;
}
switch(strlen($CizgiSayi[$i]))
{
case "1" ; $spacer = " "; break;
case "2" ; $spacer = " "; break;
case "3" ; $spacer = " "; break;
case "4" ; $spacer = ""; break;
}
imageline($Resim,$LeftM*2,$Cizgi[$i], $w-$LeftM, $Cizgi[$i],$Gri);
imagestring($Resim, 2, $LeftM-($LeftM/4), $Cizgi[$i]-7, "$spacer$CizgiSayi[$i]", $siyah);
}
//--- End Of Gridleri Cizmeye Basliyoruz -------------------------------------
//--- Aylari ve SUTUNLARI cizmeye basliyoruz --------------------------------
$Sutun = ($w-(3*$LeftM))/12; // Sütunlarin cizilecegi alani 12 parcaya bol
$GrafikAlani = round($h-($TopM*4)); // Grafigin toplam yuksekligi
$Birim = $GrafikAlani/$MaxTemp; //Sütunlar icin 1 birimin px degeri
for($i=0; $i<12; $i++)
{
if($Veri[$i]==$Max) : $Renk = $Kirmizi;
elseif($Veri[$i]==$Min) : $Renk = $Yesil;
else : $Renk = $Mavi;
endif;
$x1 = 2.1*$LeftM+($Sutun*$i);
$y1 = ($TopM*2)+$GrafikAlani-($Birim*$Veri[$i]);
$x2 = $x1+$SutunGen;
$y2 = $h-$TopM*2;
switch(strlen($Veri[$i]))
{
case "1" : $xcarpan = 2.5; break;
case "2" : $xcarpan = 2.475; break;
case "3" : $xcarpan = 2.330; break;
case "4" : $xcarpan = 2.300; break;
}
imagefilledRectangle($Resim, $x1, $y1, $x2, $y2, $Renk);
imageRectangle($Resim, $x1, $y1, $x2, $y2, $Siyah);
imagestring($Resim,2,2.335*$LeftM+($Sutun*$i),$h-(2*$TopM),"$Aylar[$i]",$Siyah);
imagestring($Resim,1,$xcarpan*$LeftM+($Sutun*$i),$y1-9,"$Veri[$i]",$Siyah);
}
//--- End of Gunleri ve SUTUNLARI cizmeye basliyoruz -------------------------
//--- L seklinde 2 kenara siyah cizgi ----------------------------------------
imageline($Resim,$LeftM*2,$h-$TopM*2,$w-$LeftM,$h-$TopM*2,$Siyah);
imageline($Resim,$LeftM*2,$TopM,$LeftM*2,$h-$TopM*2,$Siyah);
//--- End of L seklinde mavi cizgi -------------------------------------------
imagestring($Resim,$BaslikFont,$BoslukLeft+1,(1/$BaslikFont)+3,"$Baslik",$Gri);
imagestring($Resim,$BaslikFont,$BoslukLeft,1/$BaslikFont+2,"$Baslik",$Kirmizi);
imagestring($Resim,1,$LeftM*2, $h-$TopM,"Max=$Max",$Kirmizi);
imagestring($Resim,1,$LeftM*4, $h-$TopM,"Min=$Min",$Yesil);
imagestring($Resim,1,$LeftM*6, $h-$TopM,"Toplam=$Top",$Mavi);
imagestringup($Resim,1,3,$BoslukTop,"$GraphName",$Kirmizi); // GraphName
$mysign= "M. YILMAZ SUSLU, Subat 2003, VAN";
imagestringup($Resim,1,$w-10,$h-(strlen($mysign)*0.2), $mysign,$Gri); // Imza...
imagepng($Resim);
imagedestroy($Resim);
?>
Haftalik Grafik Icin:
<?
/*---------------------------------------------------------------------------
// PHP ILE SUTUN GRAFIK CIZIM ORNEGI
// haftalik.php
//
// M. Yilmaz SUSLU, Subat 2003
// Yüzüncü Yil Universitesi, VAN
// yilmazsuslu@hotmail.com
---------------------------------------------------------------------------*/
header ("Content-type: image/png");
//--- Genel Degiskenler -----------------------------------------------------
$w = 500; // Resmin Genisligi [400-500 arasi ideal]
$h = 250; // Resmin Yuksekligi [250-350 arasi ideal]
$Baslik = "Subat Ayi 3. Hafta Satislar";
$BaslikFont = 3; // Basligin font buyuklugu [1-5]
$GraphName = "ADET / GUN";
$BoslukLeft = ($w-(($BaslikFont+3)*strlen("$Baslik")))/2; // Ortalama sol margin
$BoslukTop = ($h+(5*strlen("$GraphName")))/2; // Ust margin (GraphName icin)
$YatayGrid = 10; // yatay olarak cizilecek klavuz sayisi
$LeftM = ($w*(12/100))/2;
$TopM = ($h*(12/100))/2;
$SutunGen = $w*8/100;
//--- End of Genel Degiskenler ----------------------------------------------
//--- Grafige Dökülecek Veriler ---------------------------------------------
/* Bu verileri ayri satirlarda verdim ama bir while döngüsüne girilip
veritabanindan ya da dosyadan da okutularak ya da $_GET ya da $_POST
degiskeni olarak bu degerler dinamik olarak verilebilir */
$Veri[0] = 50;
$Veri[1] = 98;
$Veri[2] = 130;
$Veri[3] = 58;
$Veri[4] = 62;
$Veri[5] = 168;
$Veri[6] = 186;
$Gunler = array("Pzt", "Sal", "Car", "Per", "Cum", "Csi", "Paz");
//--- End of Grafige Dökülecek Veriler --------------------------------------
$VeriKova = array_values($Veri); // Veri dizisinin bire bir kopyasi
sort($VeriKova);
$Min = $VeriKova[0];
$Max = $VeriKova[6];
$Top = array_sum($Veri);
$Resim = imagecreate($w,$h);
//--- Renk Tanimlamalari ----------------------------------------------------
$Siyah = imagecolorAllocate($Resim, 0, 0, 0);
$Beyaz = imagecolorallocate($Resim, 255, 255, 255);
$Mavi = imagecolorallocate($Resim, 100, 100, 255);
$Kirmizi = imagecolorAllocate($Resim, 255, 0, 0);
$Yesil = imagecolorAllocate($Resim, 0, 150, 0);
$Gri = imagecolorAllocate($Resim, 200, 200, 200);
//--- End of Renk Tanimlamalari ---------------------------------------------
imagefilledrectangle($Resim, 0, 0, $w, $h ,$Beyaz);
imagerectangle($Resim, 0, 0, $w-1, $h-1, $Siyah);
//--- Gridleri Cizmeye Basliyoruz -------------------------------------------
$CAAM = ($h-($TopM*4))/$YatayGrid; // Cizgi Araligi Artis Miktari
$Cizgi[0] = $TopM*2; // En ustteki Grid icin top margin degeri
$MaxTemp = $Max; // Maximum degeri kova degiskene attik lazim olacak
if(strlen($MaxTemp)>=3):
$CizgiSayim = strrev(substr(strrev("$MaxTemp"), 0, 2));
$WhileGo = 100;
else:
$CizgiSayim = strrev(substr(strrev("$MaxTemp"), 0, 1));
$WhileGo = 10;
endif;
while(intval($CizgiSayim)<$WhileGo)
{
$CizgiSayim++;
$MaxTemp++;
}
$CizgiSayi[0] = $MaxTemp;
for($i=0; $i<=$YatayGrid; $i++)
{
if(empty($CizgiSayi[$i]))
{
$CizgiSayi[$i] = round($MaxTemp*(($YatayGrid-$i)/$YatayGrid));
$Cizgi[$i] = $Cizgi[$i-1]+$CAAM;
}
switch(strlen($CizgiSayi[$i]))
{
case "1" ; $spacer = " "; break;
case "2" ; $spacer = " "; break;
case "3" ; $spacer = " "; break;
case "4" ; $spacer = ""; break;
}
imageline($Resim,$LeftM*2,$Cizgi[$i], $w-$LeftM, $Cizgi[$i],$Gri);
imagestring($Resim, 2, $LeftM-($LeftM/4), $Cizgi[$i]-7, "$spacer$CizgiSayi[$i]", $siyah);
}
//--- End Of Gridleri Cizmeye Basliyoruz -------------------------------------
//--- Gunleri ve SUTUNLARI cizmeye basliyoruz --------------------------------
$Sutun = ($w-(3*$LeftM))/7; // Sütunlarin cizilecegi alani 7 parcaya bol
$GrafikAlani = round($h-($TopM*4)); // Grafigin toplam yuksekligi
$Birim = $GrafikAlani/$MaxTemp; //Sütunlar icin 1 birimin px degeri
for($i=0; $i<7; $i++)
{
if($Veri[$i]==$Max) : $Renk = $Kirmizi;
elseif($Veri[$i]==$Min) : $Renk = $Yesil;
else : $Renk = $Mavi;
endif;
$x1 = 2.3*$LeftM+($Sutun*$i);
$y1 = ($TopM*2)+$GrafikAlani-($Birim*$Veri[$i]);
$x2 = $x1+$SutunGen;
$y2 = $h-$TopM*2;
switch(strlen($Veri[$i]))
{
case "1" : $xcarpan = 2.9; break;
case "2" : $xcarpan = 2.8; break;
case "3" : $xcarpan = 2.735; break;
case "4" : $xcarpan = 2.625; break;
}
imagefilledRectangle($Resim, $x1, $y1, $x2, $y2, $Renk);
imageRectangle($Resim, $x1, $y1, $x2, $y2, $Siyah);
imagestring($Resim,2,2.62*$LeftM+($Sutun*$i),$h-(2*$TopM),"$Gunler[$i]",$Siyah);
imagestring($Resim,1,$xcarpan*$LeftM+($Sutun*$i),$y1-9,"$Veri[$i]",$Siyah);
}
//--- End of Gunleri ve SUTUNLARI cizmeye basliyoruz -------------------------
//--- L seklinde 2 kenara mavi cizgi -----------------------------------------
imageline($Resim,$LeftM*2,$h-$TopM*2,$w-$LeftM,$h-$TopM*2,$Siyah);
imageline($Resim,$LeftM*2,$TopM,$LeftM*2,$h-$TopM*2,$Siyah);
//--- End of L seklinde mavi cizgi -------------------------------------------
imagestring($Resim,$BaslikFont,$BoslukLeft+1,(1/$BaslikFont)+3,"$Baslik",$Gri);
imagestring($Resim,$BaslikFont,$BoslukLeft,1/$BaslikFont+2,"$Baslik",$Kirmizi);
imagestring($Resim,1,$LeftM*2, $h-$TopM,"Max=$Max",$Kirmizi);
imagestring($Resim,1,$LeftM*4, $h-$TopM,"Min=$Min",$Yesil);
imagestring($Resim,1,$LeftM*6, $h-$TopM,"Toplam=$Top",$Mavi);
imagestringup($Resim,1,4,$BoslukTop,"$GraphName",$Kirmizi); // GraphName
$mysign= "M. YILMAZ SUSLU, Subat 2003, VAN";
imagestringup($Resim,1,$w-10,$h-(strlen($mysign)*0.2), $mysign,$Gri); // Imza...
imagepng($Resim);
imagedestroy($Resim);
?>
|
| |
|
|
|
|
|
 |
|
Tarih:
Çrş May 30, 2007 9:20 pm
|
|
|
| |
|
Yeni Üye

Kayıt: May 09, 2007
Mesajlar: 3
|
|
bunları nereye yerleştireceğiz nasıl oacak konuyu biraz daha detaylı açarmısınz? | |
|
|
|
|
|
 |
|
Tarih:
Çrş May 30, 2007 10:07 pm
|
|
|
| |
|
Site Admin

Kayıt: Jan 28, 2005
Mesajlar: 1707
Nerden: İstanbul/Avcılar
|
|
bu bir php kod örneği nereye yerleştirmek istiyorsanız
düzenler kullanırsınız mesela burda verileri düzenliyor
aylık mesela bandwith kullanımı girerek ordan grafik elde edebilirsiniz. | |
_________________
|
|
|
|
|
 |
| |
|
|
Bu forumda yeni konular açamazsınız Bu forumdaki mesajlara cevap veremezsiniz Bu forumdaki mesajlarınızı değiştiremezsiniz Bu forumdaki mesajlarınızı silemezsiniz Bu forumdaki anketlerde oy kullanamazsınız
|
|