Heim  >  Artikel  >  Backend-Entwicklung  >  PHP绘制心电形状曲线统计图表[源码]_PHP教程

PHP绘制心电形状曲线统计图表[源码]_PHP教程

WBOY
WBOYOriginal
2016-07-13 17:41:551271Durchsuche

   先看下最终效果:

diyblPic

       下面为PHP代码:

 

<ol class="dp-xml">
<li class="alt"><span><span>/******************************  </span></span></li>
<li><span>*            折线图生成函数  </span></li>
<li class="alt"><span>******************************/  </span></li>
<li>
<span>function line_stats_pic($value_y,$width,$high,$</span><span class="attribute">strong</span><span>=</span><span class="attribute-value">1</span><span>,$</span><span class="attribute">fix</span><span>=</span><span class="attribute-value">0</span><span>){  </span>
</li>
<li class="alt"><span>//y值处理函数  </span></li>
<li><span>function line_point_y($num,$width,$high,$max_num_add,$min_num_add,$y_pxdensity){  </span></li>
<li class="alt">
<span>    $</span><span class="attribute">return</span><span>=$high-floor(($num-$min_num_add+$y_pxdensity)/(($max_num_add-$min_num_add)/$high));  </span>
</li>
<li><span>    return $return;  </span></li>
<li class="alt"><span>}  </span></li>
<li><span> </span></li>
<li class="alt"><span>//参数处理  </span></li>
<li>
<span>$</span><span class="attribute">allnum</span><span>=</span><span class="attribute-value">sizeof</span><span>($value_y);  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute-value">max</span><span class="attribute">max_num</span><span>=max($value_y);                            //最大值  </span>
</li>
<li>
<span>$</span><span class="attribute-value">min</span><span class="attribute">min_num</span><span>=min($value_y);                            //最小值  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">limit_m</span><span>=$max_num-$min_num;                        //极差  </span>
</li>
<li>
<span>$</span><span class="attribute">max_num_add</span><span>=$max_num+$limit_m*0.1;                //轴最大值  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">min_num_add</span><span>=$min_num-$limit_m*0.1;                //轴最小值  </span>
</li>
<li>
<span>$</span><span class="attribute">limit</span><span>=$max_num_add-$min_num_add;                 //极差-坐标轴y  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">y_pxdensity</span><span>=($max_num_add-$min_num_add)/$high;    //y轴密度  </span>
</li>
<li>
<span>$</span><span class="attribute">x_pxdensity</span><span>=</span><span class="attribute-value">floor</span><span>($width/$allnum);                //x轴密度  </span>
</li>
<li class="alt"><span>reset($value_y);                                 //将数组指针归零  </span></li>
<li>
<span>$</span><span class="attribute">i</span><span>=</span><span class="attribute-value">0</span><span>;  </span>
</li>
<li class="alt"><span>foreach($value_y as $val){  </span></li>
<li><span>    $point_y[$i]=line_point_y($val,$width,$high,$max_num_add,$min_num_add,$y_pxdensity);  </span></li>
<li class="alt"><span>    $i++;  </span></li>
<li><span>}  </span></li>
<li class="alt">
<span>$</span><span class="attribute">zero_y</span><span>=</span><span class="attribute-value">line_point_y</span><span>(0,$width,$high,$max_num_add,$min_num_add,$y_pxdensity);    //零点的y值  </span>
</li>
<li>
<span>$</span><span class="attribute">empty_size_x</span><span>=(strlen($max_num) </span><span class="tag">></span><span> strlen($min_num) ? strlen($max_num) : strlen($min_num))*5+3;                    //左边空白  </span>
</li>
<li class="alt"><span> </span></li>
<li><span>//图片流开始  </span></li>
<li class="alt"><span>header("Content-type:image/png");  </span></li>
<li>
<span>$</span><span class="attribute">pic</span><span>=</span><span class="attribute-value">imagecreate</span><span>($width+$empty_size_x+10,$high+13);  </span>
</li>
<li class="alt"><span>imagecolorallocate($pic,255,255,255);         //背景色  </span></li>
<li>
<span>$</span><span class="attribute">color_1</span><span>=</span><span class="attribute-value">imagecolorallocate</span><span>($pic,30,144,255); //线条色  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">color_2</span><span>=</span><span class="attribute-value">imagecolorallocate</span><span>($pic,0,0,0);     //黑色  </span>
</li>
<li>
<span>$</span><span class="attribute">color_3</span><span>=</span><span class="attribute-value">imagecolorallocate</span><span>($pic,194,194,194);//灰色  </span>
</li>
<li class="alt"><span>//绘制网格  </span></li>
<li><span>imagesetthickness($pic,1);                    //网格线宽  </span></li>
<li class="alt">
<span>$</span><span class="attribute">y_line_width</span><span>=</span><span class="attribute-value">floor</span><span>($width/100);             //纵网格线数目  </span>
</li>
<li>
<span>$</span><span class="attribute">y_line_density</span><span>=$</span><span class="attribute">y_line_width</span><span>==0 ? 0 :floor($width/$y_line_width); //纵网格线密度  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">point_zero_y</span><span>=$zero_y </span><span class="tag">></span><span> $high ? $high : $zero_y;  </span>
</li>
<li><span>imagestring($pic,1,$empty_size_x-1,$high+4,"0",$color_2); //零点数轴标记  </span></li>
<li class="alt">
<span>for($</span><span class="attribute">i</span><span>=</span><span class="attribute-value">1</span><span>;$i </span><span class="tag"><span>= $y_line_width;$i++){            //绘制纵网格线  </span></span>
</li>
<li><span>    imagesetthickness($pic,1);                 //网格线宽  </span></li>
<li class="alt"><span>    imageline($pic,$y_line_density*$i+$empty_size_x,0,$y_line_density*$i+$empty_size_x,$high,$color_3);  </span></li>
<li><span>    imagesetthickness($pic,2);                 //轴点线宽  </span></li>
<li class="alt"><span>    imageline($pic,$y_line_density*$i+$empty_size_x,$point_zero_y-4,$y_line_density*$i+$empty_size_x,$point_zero_y,$color_2);  </span></li>
<li><span>    imagestring($pic,1,10						
<p align="left"></p>
<div style="display:none;">
<span id="url" itemprop="url">http://www.bkjia.com/PHPjc/486091.html</span><span id="indexUrl" itemprop="indexUrl">www.bkjia.com</span><span id="isOriginal" itemprop="isOriginal">true</span><span id="isBasedOnUrl" itemprop="isBasedOnUrl">http://www.bkjia.com/PHPjc/486091.html</span><span id="genre" itemprop="genre">TechArticle</span><span id="description" itemprop="description">先看下最终效果: 下面为PHP代码: /****************************** *折线图生成函数 ******************************/ functionline_stats_pic($value_y,$width,$high,$ str...</span>
</div>
<div class="art_confoot"></div>
</span></li>
</ol>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn