Home  >  Article  >  Backend Development  >  PHP draws ECG shape curve statistical chart [source code]_PHP tutorial

PHP draws ECG shape curve statistical chart [source code]_PHP tutorial

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

Let’s take a look at the final effect:

PHP draws ECG shape curve statistical chart [source code]_PHP tutorial

The following is the PHP code:

<ol class="dp-xml">
<li class="alt"><span><span>/****************************** </span></span></li>
<li><span>* Line chart generation function </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 value of zero point </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; //Left blank </span>
</li>
<li class="alt"><span> </span></li>
<li><span>//The image stream starts </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>imagecolorallocate</li>
<li>($pic,30,144,255); //Line color <span></span><span class="attribute"></span>$<span></span>color_2<span class="attribute-value"></span>=<span></span>imagecolorallocate</li>
<li class="alt">($pic,0,0,0); //Black <span></span><span class="attribute"></span>$<span></span>color_3<span class="attribute-value"></span>=<span></span>imagecolorallocate</li>
<li>($pic,194,194,194);//Gray <span></span><span class="attribute"></span>//Draw grid <span></span><span class="attribute-value"></span>imagesetthickness($pic,1); //Grid line width <span></span>
</li>
<li class="alt">$<span></span>y_line_width</li>
<li>=<span></span>floor</li>
<li class="alt">($width/100);                                             //Number of vertical grid lines <span></span><span class="attribute"></span>$<span></span>y_line_density<span class="attribute-value"></span>= $<span></span>y_line_width</li>
<li>==0 ? 0 :floor($width/$y_line_width); //Vertical grid line density <span></span><span class="attribute"></span>$<span></span>point_zero_y<span class="attribute"></span>=$zero_y <span></span>></li>
<li class="alt"> $high ? $high : $zero_y; <span></span><span class="attribute"></span> imagestring($pic,1,$empty_size_x-1,$high+4,"0",$color_2); //Zero point axis mark <span></span><span class="tag"></span>for($<span></span>i</li>
<li>=<span></span>1</li>
<li class="alt">;$i <span></span>= $y_line_width;$i++){                Vertical grid lines <span></span><span class="attribute-value"></span> imagesetthickness($pic,1); //Grid line width <span></span><span class="tag"></span> imageline($pic,$y_line_density* $i+$empty_size_x,0,$y_line_density*$i+$empty_size_x,$high,$color_3); <span></span>
</li>
<li> imagesetthickness($pic,2); //Axis point line width <span></span>
</li>
<li class="alt"> 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></span>
</li>
<li> imagestring($pic,1,10 <span>
</span>
</li>
<li class="alt">http://www.bkjia.com/PHPjc/486091.html<span></span>www.bkjia.com</li>
<li>true<span>http: //www.bkjia.com/PHPjc/486091.html<p align="left"></p>
<div style="display:none;">TechArticle<span id="url" itemprop="url"></span>Let’s take a look at the final effect: The following is the PHP code: /******************************** *Line chart generation function************************ *************/ functionline_stats_pic($value_y, $width,$high,$ str...<span id="indexUrl" itemprop="indexUrl"></span><span id="isOriginal" itemprop="isOriginal"></span>
<span id="isBasedOnUrl" itemprop="isBasedOnUrl"></span>
</div></span>
</li>
</ol>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn