PHP ile Grafik Yaratma Örneği - TurkishNuke
PHP Nuke - Themes - Modules - Blocks - Addons - Turkish Nuke: Forumlar

Turkish Nuke ~ Başlığı Görüntüle - PHP ile Grafik Yaratma Örneği

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
cemone
MesajTarih: Sal Hzr 14, 2005 9:02 am 
PHP, ile, Grafik, Yaratma, Örneği, PHP ile Grafik Yaratma Örneği,
Alıntıyla Cevap Ver
   
Katılımcı
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);
?>
 
Başa dön
Kullanıcı profilini gör Özel mesaj gönder E-mail'i gönder Kullanıcının web sitesini ziyaret et MSN Messenger
eynesilcom
MesajTarih: Çrş May 30, 2007 9:20 pm 
Alıntıyla Cevap Ver
   
Yeni Üye
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?
 
Başa dön
Kullanıcı profilini gör Özel mesaj gönder
AhmetPasha
MesajTarih: Çrş May 30, 2007 10:07 pm 
Alıntıyla Cevap Ver
   
Site Admin
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.
 

_________________
Başa dön
Kullanıcı profilini gör Özel mesaj gönder Kullanıcının web sitesini ziyaret et MSN Messenger
Mesajları göster:   
Tüm saatler GMT +2 Saat

Sonraki başlık
Önceki başlık
1. sayfa (Toplam 1 sayfa)
Turkish Nuke Forum Ana Sayfası  ~  Programlama Dilleri

Yeni Başlık Gönder   Cevap Gönder


 
Forum Seçin:  

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

Copyright © Haziran 2005, TurkishNuke ™ Her hakkı saklıdır.
Web sitemizin PHP-Nuke tabanlıdır.

Bu site en iyi 1024x768 ve üzeri çözünürlüklerde, İnternet Explorer ve Firefox ile görüntülenir.
 

stories | temizlik | Kırcaali

AktifPHP!