亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php生成曲線圖程序

2024-09-04 11:44:26
字體:
來源:轉載
供稿:網友
  1. <?php 
  2. /*******************用法************************* 
  3.     $gg=new build_graph(); 
  4.      
  5.     $d1=array(0,62,25,20,20,100,99);  //曲線一 
  6. //$d1=array('15'=>5,'16'=>8,'17'=>7,'18'=>9,'19'=>10,'20'=>15,'21'=>9); 改成這個形式啦 
  7.     $d2=array(0,80,75,65,100,56,79);  //曲線二 
  8.     $d3=array(0,60,50,25,12,56,45);   //曲線三 一下可以繼續以此類推 
  9.      
  10.     $gg->add_data($d1); 
  11.     $gg->add_data($d2); 
  12.     $gg->add_data($d3); 
  13.      
  14.     $gg->set_colors("ee00ff,dd8800,00ff00"); //對應曲線的顏色 
  15.      
  16.     //生成曲線圖 
  17.     $gg->build("line",0);          //參數0表示顯示所有曲線,1為顯示第一條,依次類推 
  18.      
  19.     //生成矩形圖 
  20.     //$gg->build("rectangle","2");    //參數0表示顯示第一個矩形,1也為顯示第一條,其余依次類推 
  21.      
  22. /////////////////////////////////////////////////////////// 
  23.     //自定義圖形顯示,可任意圖形疊加顯示 
  24.        header("Content-type: image/png"); 
  25.        $gg->create_cloths();          //畫布 
  26.        $gg->create_frame();          //畫個框先 
  27.        //$gg->build_rectangle(2);       //畫矩形 
  28.        $gg->create_line();             //畫線 
  29.        $gg->build_line(0);             //畫曲線 
  30.        imagepng($gg->image); 
  31.        imagedestroy($gg->image); 
  32. */ 
  33. class build_graph { 
  34.     var $graphwidth=300; 
  35.     var $graphheight=300; 
  36.     var $width_num=0;                //寬分多少等分 
  37.     var $height_num=10;                //高分多少等分,默認為10 
  38.     var $height_var=0;                //高度增量(用戶數據平均數) 
  39.     var $width_var=0;                //寬度增量(用戶數據平均數) 
  40.     var $height_max=0;                //最大數據值 
  41.     var $array_data=array();          //用戶待分析的數據的二維數組 
  42.     var $array_error=array();          //收集錯誤信息 
  43.     var $colorBg=array(255,255,255);    //圖形背景-白色 
  44.     var $colorGrey=array(192,192,192);    //灰色畫框 
  45.     var $colorBlue=array(0,0,255);       //藍色 
  46.     var $colorRed=array(255,0,0);       //紅色(點) 
  47.     var $colorDarkBlue=array(0,0,255);    //深色 
  48.     var $colorLightBlue=array(200,200,255);       //淺色 
  49.     var $array_color;                //曲線著色(存儲十六進制數) 
  50.     var $image;                      //我們的圖像 
  51.     //方法:接受用戶數據 
  52.     function add_data($array_user_data
  53.     { 
  54.        if(!is_array($array_user_dataor emptyempty($array_user_data)) 
  55.        { 
  56.           $this->array_error['add_data']="沒有可供分析的數據"
  57.           return false; 
  58.           exit(); 
  59.        } 
  60.         
  61.        $i=count($this->array_data); 
  62.         
  63.        $this->array_data[$i]=$array_user_data
  64.         
  65.     } 
  66.     //方法:定義畫布寬和長 
  67.     function set_img($img_width,$img_height){ 
  68.        $this->graphwidth=$img_width
  69.        $this->graphheight=$img_height
  70.     } 
  71.     //設定Y軸的增量等分,默認為10份 
  72.     function set_height_num($var_y){ 
  73.        $this->height_num=$var_y
  74.     } 
  75.     //定義各圖形各部分色彩 
  76.     function get_RGB($color){             //得到十進制色彩 
  77.     $R=($color>>16) & 0xff; 
  78.     $G=($color>>8) & 0xff; 
  79.     $B=($color) & 0xff; 
  80.     return (array($R,$G,$B)); 
  81.     } 
  82.     //--------------------------------------------------------------- 
  83.     #定義背景色 
  84.     function set_color_bg($c1,$c2,$c3){ 
  85.        $this->colorBg=array($c1,$c2,$c3); 
  86.     } 
  87.     #定義畫框色 
  88.     function set_color_Grey($c1,$c2,$c3){ 
  89.        $this->colorGrey=array($c1,$c2,$c3); 
  90.     } 
  91.     #定義藍色 
  92.     function set_color_Blue($c1,$c2,$c3){ 
  93.        $this->colorBlue=array($c1,$c2,$c3); 
  94.     } 
  95.     #定義色Red 
  96.     function set_color_Red($c1,$c2,$c3){ 
  97.        $this->colorRed=array($c1,$c2,$c3); 
  98.     } 
  99.     #定義深色 
  100.     function set_color_DarkBlue($c1,$c2,$c3){ 
  101.        $this->colorDarkBlue=array($c1,$c2,$c3); 
  102.     } 
  103.     #定義淺色 
  104.     function set_color_LightBlue($c1,$c2,$c3){ 
  105.        $this->colorLightBlue=array($c1,$c2,$c3); 
  106.     } 
  107.     //--------------------------------------------------------------- 
  108.     //方法:由用戶數據將畫布分成若干等份寬 
  109.     //并計算出每份多少像素 
  110.     function get_width_num(){ 
  111.        $this->width_num=count($this->array_data[0]); 
  112.     } 
  113.      
  114.     function get_max_height(){ 
  115.        //獲得用戶數據的最大值 
  116.        $tmpvar=array(); 
  117.            
  118.        foreach($this->array_data as $tmp_value
  119.        { 
  120.           $tmpvar[]=max($tmp_value); 
  121.        } 
  122.         
  123.        $this->height_max=max($tmpvar); 
  124.         
  125.        return max($tmpvar); 
  126.     } 
  127.      
  128.     function get_height_length(){ 
  129.        //計算出每格的增量長度(用戶數據,而不是圖形的像素值) 
  130.        $max_var=$this->get_max_height(); 
  131.        $max_var=round($max_var/$this->height_num); 
  132.        $first_num=substr($max_var,0,1); 
  133.        if(substr($max_var,1,1)){ 
  134.           if(substr($max_var,1,1)>=5) 
  135.              $first_num+=1; 
  136.        } 
  137.        for($i=1;$i<strlen($max_var);$i++){ 
  138.           $first_num.="0"
  139.        } 
  140.        return (int)$first_num
  141.     } 
  142.      
  143.     function get_var_wh()  //得到高和寬的增量 
  144.     {           
  145.        $this->get_width_num(); 
  146.        //得到高度增量和寬度增量 
  147.        $this->height_var=$this->get_height_length(); 
  148.         
  149.        $this->width_var=round($this->graphwidth/$this->width_num); 
  150.     } 
  151.     function set_colors($str_colors){ 
  152.        //用于多條曲線的不同著色,如$str_colors="ee00ff,dd0000,cccccc" 
  153.        $this->array_color=split(",",$str_colors); 
  154.     } 
  155. ###################################################################################################### 
  156.     function build_line($var_num
  157.     { 
  158.        if(!emptyempty($var_num)) 
  159.        {                   //如果用戶只選擇顯示一條曲線 
  160.           $array_tmp[0]=$this->array_data[$var_num-1]; 
  161.           $this->array_data=$array_tmp
  162.        } 
  163.         
  164.         //畫線 
  165.           
  166.        for($j=0;$j<count($this->array_data);$j++) 
  167.        { 
  168.           list($R,$G,$B)=$this->get_RGB(hexdec($this->array_color[$j])); 
  169.            
  170.           $colorBlue=imagecolorallocate($this->image,$R,$G,$B); 
  171.            
  172.             $i=0; 
  173.               foreach($this->array_data[$jas $keys=>$values
  174.             { 
  175.                 $height_next_pix[]=round($this->array_data[$j][$keys]/$this->height_max*$this->graphheight); 
  176.             } 
  177.              
  178.             foreach($this->array_data[$jas $key=>$value
  179.             { 
  180.                 $height_pix=round(($this->array_data[$j][$key]/$this->height_max)*$this->graphheight); 
  181.                  
  182.                 if($i!=count($this->array_data[$j])-1) 
  183.                 { 
  184.                     imageline($this->image,$this->width_var*$i,$this->graphheight-$height_pix,$this->width_var*($i+1),$this->graphheight-$height_next_pix[$i+1],$colorBlue); 
  185.                 } 
  186.                  
  187.                 $i++; 
  188.             } 
  189.           
  190.         //print_r($height_next_pix); 
  191.         // exit; 
  192.          /* 
  193.           for($i=0;$i<$this->width_num-1;$i++) 
  194.           { 
  195.              $height_pix=round(($this->array_data[$j][$i]/$this->height_max)*$this->graphheight); 
  196.              $height_next_pix=round($this->array_data[$j][$i+1]/$this->height_max*$this->graphheight); 
  197.              imageline($this->image,$this->width_var*$i,$this->graphheight-$height_pix,$this->width_var*($i+1),$this->graphheight-$height_next_pix,$colorBlue); 
  198.           }*/ 
  199.        } 
  200.         
  201.         
  202.        //畫點 
  203.         
  204.        $colorRed=imagecolorallocate($this->image, $this->colorRed[0], $this->colorRed[1], $this->colorRed[2]); 
  205.        for($j=0;$j<count($this->array_data);$j++) 
  206.        { 
  207.                $i=0; 
  208.             foreach($this->array_data[$jas $key=>$value
  209.             { 
  210.                  $height_pix=round(($this->array_data[$j][$key]/$this->height_max)*$this->graphheight); 
  211.                  imagearc($this->image,$this->width_var*$i,$this->graphheight-$height_pix,6,5,0,360,$colorRed); 
  212.                  imagefilltoborder($this->image,$this->width_var*$i,$this->graphheight-$height_pix,$colorRed,$colorRed); 
  213.                  $i++; 
  214.             } 
  215.          
  216.         /* 
  217.           for($i=0;$i<$this->width_num;$i++) 
  218.           { 
  219.              $height_pix=round(($this->array_data[$j][$i]/$this->height_max)*$this->graphheight); 
  220.              imagearc($this->image,$this->width_var*$i,$this->graphheight-$height_pix,6,5,0,360,$colorRed); 
  221.              imagefilltoborder($this->image,$this->width_var*$i,$this->graphheight-$height_pix,$colorRed,$colorRed); 
  222.           } 
  223.          */ 
  224.        } 
  225.         
  226.     } 
  227. ###################################################################################################### 
  228.     function build_rectangle($select_gra){ 
  229.        if(!emptyempty($select_gra)){                   //用戶選擇顯示一個矩形 
  230.           $select_gra-=1; 
  231.        } 
  232.        //畫矩形 
  233.        //配色 
  234.        $colorDarkBlue=imagecolorallocate($this->image, $this->colorDarkBlue[0], $this->colorDarkBlue[1], $this->colorDarkBlue[2]); 
  235.        $colorLightBlue=imagecolorallocate($this->image, $this->colorLightBlue[0], $this->colorLightBlue[1], $this->colorLightBlue[2]); 
  236.        if(emptyempty($select_gra)) 
  237.           $select_gra=0; 
  238.        for($i=0; $i<$this->width_num; $i++){ 
  239.           $height_pix=round(($this->array_data[$select_gra][$i]/$this->height_max)*$this->graphheight); 
  240.           imagefilledrectangle($this->image,$this->width_var*$i,$this->graphheight-$height_pix,$this->width_var*($i+1),$this->graphheight, $colorDarkBlue); 
  241.           imagefilledrectangle($this->image,($i*$this->width_var)+1,($this->graphheight-$height_pix)+1,$this->width_var*($i+1)-5,$this->graphheight-2, $colorLightBlue); 
  242.        } 
  243.     } 
  244. ###################################################################################################### 
  245.     function create_cloths(){ 
  246.        //創建畫布 
  247.        $this->image=imagecreate($this->graphwidth+20,$this->graphheight+20); 
  248.     } 
  249.     function create_frame(){ 
  250.        //創建畫框 
  251.        $this->get_var_wh(); 
  252.        //配色 
  253.        $colorBg=imagecolorallocate($this->image, $this->colorBg[0], $this->colorBg[1], $this->colorBg[2]); 
  254.        $colorGrey=imagecolorallocate($this->image, $this->colorGrey[0], $this->colorGrey[1], $this->colorGrey[2]); 
  255.        //創建圖像周圍的框 
  256.        imageline($this->image, 0, 0, 0, $this->graphheight,$colorGrey); 
  257.        imageline($this->image, 0, 0, $this->graphwidth, 0,$colorGrey); 
  258.        imageline($this->image, ($this->graphwidth-1),0,($this->graphwidth-1),($this->graphheight-1),$colorGrey); 
  259.        imageline($this->image, 0,($this->graphheight-1),($this->graphwidth-1),($this->graphheight-1),$colorGrey); 
  260.     } 
  261.      
  262.     function create_line() 
  263.     {//開源代碼Vevb.com 
  264.        //創建網格。 
  265.        $this->get_var_wh(); 
  266.        $colorBg=imagecolorallocate($this->image, $this->colorBg[0], $this->colorBg[1], $this->colorBg[2]); 
  267.        $colorGrey=imagecolorallocate($this->image, $this->colorGrey[0], $this->colorGrey[1], $this->colorGrey[2]); 
  268.        $colorRed=imagecolorallocate($this->image, $this->colorRed[0], $this->colorRed[1], $this->colorRed[2]); 
  269.         
  270.        for($i=1;$i<=$this->height_num;$i++) 
  271.        { 
  272.           //畫橫線 
  273.           $y1=($this->graphheight-($this->height_var/$this->height_max*$this->graphheight)*$i); 
  274.            
  275.           $y2=($this->graphheight-($this->height_var/$this->height_max*$this->graphheight)*$i); 
  276.            
  277.           imageline($this->image,0,$y1,$this->graphwidth,$y2,$colorGrey); 
  278.            
  279.           //標出數字 
  280.           imagestring($this->image,2,0,$this->graphheight-($this->height_var/$this->height_max*$this->graphheight)*$i,$this->height_var*$i,$colorRed); 
  281.        } 
  282.         
  283.        unset($i); 
  284.         
  285.        foreach($this->array_data[0] as $key=>$value
  286.        { 
  287.               //畫豎線 
  288.               imageline($this->image,$this->width_var*$i,0,$this->width_var*$i,$this->graphwidth,$colorGrey); 
  289.            
  290.           //標出數字 
  291.            imagestring($this->image,2,$this->width_var*$i,$this->graphheight-15,$key,$colorRed); 
  292.             
  293.            $i++; 
  294.        } 
  295.         
  296.        /* 
  297.        for($i=1;$i<=$this->width_num;$i++) 
  298.        { 
  299.           //畫豎線 
  300.           imageline($this->image,$this->width_var*$i,0,$this->width_var*$i,$this->graphwidth,$colorGrey); 
  301.           //標出數字 
  302.           imagestring($this->image,2,$this->width_var*$i,$this->graphheight-15,$i,$colorRed); 
  303.        } 
  304.        */ 
  305.     } 
  306.     function build($graph,$str_var){ 
  307.        //$graph是用戶指定的圖形種類,$str_var是生成哪個數據的圖 
  308.        header("Content-type: image/jpeg"); 
  309.        $this->create_cloths();          //先要有畫布啊~~ 
  310.        switch ($graph){ 
  311.           case "line"
  312.              $this->create_frame();          //畫個框先:) 
  313.              $this->create_line();          //打上底格線 
  314.              $this->build_line($str_var);          //畫曲線 
  315.              break
  316.           case "rectangle"
  317.              $this->create_frame();                   //畫個框先:) 
  318.              $this->build_rectangle($str_var);          //畫矩形 
  319.              $this->create_line();                   //打上底格線 
  320.              break
  321.        } 
  322.        //輸出圖形并清除內存 
  323.        imagepng($this->image); 
  324.        imagedestroy($this->image); 
  325.     } 
  326. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频中文字幕91| 国产精品美女免费看| 日韩精品免费一线在线观看| 国产99在线|中文| 亚洲影视中文字幕| 成人久久18免费网站图片| 久久久久国产精品一区| 精品视频在线播放色网色视频| 国产精品久久不能| 欧美电影免费在线观看| 国产欧美日韩丝袜精品一区| 亚洲国产精品视频在线观看| 粉嫩av一区二区三区免费野| 亚洲自拍偷拍一区| 亚洲精品视频网上网址在线观看| 欧美第一页在线| 日韩欧美在线观看视频| 欧美xxxx做受欧美| 久久久久久久国产精品| 国产精品一二三在线| 5566成人精品视频免费| 久久夜色撩人精品| 久久久久久国产三级电影| 国产91色在线|| 色偷偷av亚洲男人的天堂| 欧美亚洲第一区| 国产精品第一第二| 久久久精品视频在线观看| 欧美巨大黑人极品精男| 亚洲缚视频在线观看| 精品伊人久久97| 欧美日韩国产精品一区二区不卡中文| 4388成人网| 久久艳片www.17c.com| 亚洲国产古装精品网站| 国产成人精品久久二区二区91| 欧美视频在线免费看| 亚洲一区二区中文字幕| 亚洲成年人在线播放| 色综合五月天导航| 亚洲精品久久久久久久久久久久| 亚洲最大成人在线| 精品福利在线看| 日韩中文字幕在线| 日韩精品免费综合视频在线播放| 欧美亚洲成人xxx| 91国偷自产一区二区三区的观看方式| 精品中文字幕在线2019| 中文字幕精品www乱入免费视频| 久久久久久久成人| 91精品久久久久久久久青青| 成人乱人伦精品视频在线观看| 亚洲一级一级97网| 欧美丰满少妇xxxxx做受| 欧美午夜影院在线视频| 91成人在线视频| 欧美高清videos高潮hd| 日韩精品免费综合视频在线播放| 国产精品69精品一区二区三区| 日韩国产高清污视频在线观看| 91网在线免费观看| 黄色成人在线播放| 欧美成人在线免费视频| 久久久久久久久久婷婷| 日韩欧亚中文在线| 91精品国产高清久久久久久| 色综合天天狠天天透天天伊人| 国产精品一区二区久久| 青草成人免费视频| 欧美激情在线有限公司| 久久久亚洲影院| 亚洲黄色www网站| 91成人免费观看网站| 欧美性生交xxxxxdddd| 日韩精品欧美国产精品忘忧草| 精品精品国产国产自在线| 亚洲欧美在线看| 青草青草久热精品视频在线观看| 亚洲二区中文字幕| 欧美精品www| 欧美在线观看网址综合| 亚洲国产成人精品久久久国产成人一区| 久久国产精品电影| 欧美激情在线狂野欧美精品| 日本aⅴ大伊香蕉精品视频| 欧美精品久久久久久久免费观看| 不卡在线观看电视剧完整版| 国产精品久久久久久久电影| 亚洲成人网久久久| 操日韩av在线电影| 羞羞色国产精品| 久久免费视频这里只有精品| 欧美精品久久久久久久| 日韩视频在线一区| 国产成人亚洲综合91| 欧美性猛交xxxx免费看漫画| 亚洲乱码一区av黑人高潮| 中文字幕日韩有码| 国产成人+综合亚洲+天堂| 中文字幕自拍vr一区二区三区| 欧美激情在线播放| 国产精品午夜国产小视频| 欧美精品激情视频| 亚洲一级一级97网| 91色在线视频| 国产性色av一区二区| 亚洲欧美在线播放| 欧洲日本亚洲国产区| 欧美福利小视频| 亚洲成人精品视频在线观看| 国产精品日韩欧美| 高清日韩电视剧大全免费播放在线观看| 亚洲欧美日韩中文视频| 欧美激情精品久久久久久黑人| 91久久在线播放| 日韩经典中文字幕在线观看| 一区二区三区四区精品| 亚洲精品久久久久久久久久久久| 日本精品一区二区三区在线| 在线播放日韩av| 日韩亚洲精品视频| 欧美精品18videosex性欧美| 国产精品久久久久久久久久东京| 亚洲午夜精品视频| 日韩av电影在线网| 亚州精品天堂中文字幕| 2019最新中文字幕| 欧美性xxxxx| 欧美精品一区二区免费| 亚洲影影院av| 久久男人资源视频| 日韩精品中文字幕视频在线| 按摩亚洲人久久| 国产欧美精品日韩精品| 久久亚洲电影天堂| 亚洲一区中文字幕在线观看| 国产精品一区二区在线| 亚洲美女性视频| 欧美日韩亚洲网| 欧美重口另类videos人妖| 欧美一级大片在线观看| 日韩动漫免费观看电视剧高清| 亚洲国产黄色片| 日韩毛片中文字幕| www.日韩.com| 国产suv精品一区二区| 亚洲一区二区久久久久久| 久久精品视频99| 久久这里只有精品视频首页| 日韩免费高清在线观看| 久久97精品久久久久久久不卡| 亚洲精品大尺度| 欧美一级片久久久久久久| 亚洲女同精品视频| 欧美性极品xxxx娇小| 日韩中文字幕不卡视频| 91久久国产精品| 亚洲激情免费观看| 成人精品在线观看| 久久综合五月天| 91精品视频专区| 久久久亚洲福利精品午夜| 成人av在线亚洲| 91av在线网站|