设为首页收藏本站language 语言切换
查看: 1267|回复: 0
收起左侧

html 柱状图的类 - 纵向

[复制链接]
发表于 2010-2-24 13:43:19 | 显示全部楼层 |阅读模式
<FONT face=新宋体><FONT color=#0000bb>&lt;?php<BR></FONT><FONT color=#007700>class </FONT></FONT><FONT face=新宋体 color=#0000bb>histogram_v<BR></FONT><FONT face=新宋体 color=#007700>{<BR>  </FONT><FONT face=新宋体><FONT color=#ff8000>/***********************************<BR>   * V: vertical(纵)<BR>   * HTML 柱状图<BR>   * 设计: 第二信息(www.DearInfo.com) / 唐辉<BR>   * 源稿设计日期: 2004年11月11日<BR>   * PHP社区: http://php.DearInfo.com<BR>   * 转载时请保留作者信息及出处, 多谢!<BR>   * 使用方法:<BR>   * $htg      = new histogram_v;<BR>   * $htg-&gt;num  = "250,370,621,720,326,455,132,345,611,126,551,266";<BR>   * $htg-&gt;label  = "1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月";<BR>   * $htg-&gt;show();<BR>   ************************************/<BR><BR>  //数值<BR>  </FONT><FONT color=#007700>var </FONT><FONT color=#0000bb>$num</FONT></FONT><FONT face=新宋体 color=#007700>;<BR><BR>  </FONT><FONT face=新宋体><FONT color=#ff8000>//低部标签值<BR>  </FONT><FONT color=#007700>var </FONT><FONT color=#0000bb>$label</FONT></FONT><FONT face=新宋体 color=#007700>;<BR><BR>  </FONT><FONT face=新宋体><FONT color=#ff8000>//柱状图高度, 默认为200, 用户可自定义<BR>  </FONT><FONT color=#007700>var </FONT><FONT color=#0000bb>$height</FONT><FONT color=#007700>=</FONT><FONT color=#0000bb>200</FONT></FONT><FONT face=新宋体 color=#007700>;<BR><BR>  </FONT><FONT face=新宋体><FONT color=#ff8000>//每条柱的宽度,默认为25, 用户可自定义<BR>  </FONT><FONT color=#007700>var </FONT><FONT color=#0000bb>$perwidth</FONT><FONT color=#007700>=</FONT><FONT color=#0000bb>25</FONT></FONT><FONT face=新宋体><FONT color=#007700>;<BR><BR>  function </FONT><FONT color=#0000bb>show</FONT></FONT><FONT face=新宋体 color=#007700>()<BR>  {<BR>    </FONT><FONT face=新宋体><FONT color=#ff8000>//获取外部数值<BR>    </FONT><FONT color=#0000bb>$shu</FONT><FONT color=#007700>=</FONT><FONT color=#0000bb>split</FONT><FONT color=#007700>(</FONT><FONT color=#dd0000>","</FONT><FONT color=#007700>,</FONT><FONT color=#0000bb>$this</FONT><FONT color=#007700>-&gt;</FONT><FONT color=#0000bb>num</FONT></FONT><FONT face=新宋体 color=#007700>);<BR>    </FONT><FONT face=新宋体><FONT color=#ff8000>//获取标签值<BR>    </FONT><FONT color=#0000bb>$biaoqian</FONT><FONT color=#007700>=</FONT><FONT color=#0000bb>split</FONT><FONT color=#007700>(</FONT><FONT color=#dd0000>","</FONT><FONT color=#007700>,</FONT><FONT color=#0000bb>$this</FONT><FONT color=#007700>-&gt;</FONT><FONT color=#0000bb>label</FONT></FONT><FONT face=新宋体 color=#007700>);<BR>    </FONT><FONT face=新宋体><FONT color=#ff8000>//颜色, 默认为20种, 如果客户数据超过20种, 则回到第一种, 如此循环.<BR>    </FONT><FONT color=#0000bb>$color  </FONT><FONT color=#007700>= array(</FONT><FONT color=#dd0000>'#97bd00'</FONT><FONT color=#007700>,</FONT><FONT color=#dd0000>'#009900'</FONT><FONT color=#007700>,</FONT><FONT color=#dd0000>'#cc3300'</FONT></FONT><FONT face=新宋体><FONT color=#007700>,<BR>              </FONT><FONT color=#dd0000>'#ffcc00'</FONT><FONT color=#007700>,</FONT><FONT color=#dd0000>'#3366cc'</FONT><FONT color=#007700>,</FONT><FONT color=#dd0000>'#33cc33'</FONT></FONT><FONT face=新宋体><FONT color=#007700>,<BR>              </FONT><FONT color=#dd0000>'#ff9933'</FONT><FONT color=#007700>,</FONT><FONT color=#dd0000>'#cccc99'</FONT><FONT color=#007700>,</FONT><FONT color=#dd0000>'#99cc66'</FONT></FONT><FONT face=新宋体><FONT color=#007700>,<BR>              </FONT><FONT color=#dd0000>'#66ff99'</FONT><FONT color=#007700>,</FONT><FONT color=#dd0000>'#4f6600'</FONT><FONT color=#007700>,</FONT><FONT color=#dd0000>'#003300'</FONT></FONT><FONT face=新宋体><FONT color=#007700>,<BR>              </FONT><FONT color=#dd0000>'#481000'</FONT><FONT color=#007700>,</FONT><FONT color=#dd0000>'#7d6400'</FONT><FONT color=#007700>,</FONT><FONT color=#dd0000>'#173064'</FONT></FONT><FONT face=新宋体><FONT color=#007700>,<BR>              </FONT><FONT color=#dd0000>'#1a6a1a'</FONT><FONT color=#007700>,</FONT><FONT color=#dd0000>'#974b00'</FONT><FONT color=#007700>,</FONT><FONT color=#dd0000>'#78793c'</FONT></FONT><FONT face=新宋体><FONT color=#007700>,<BR>              </FONT><FONT color=#dd0000>'#557e27'</FONT><FONT color=#007700>,</FONT><FONT color=#dd0000>'#009337'</FONT></FONT><FONT face=新宋体><FONT color=#007700>);        <BR>    if (</FONT><FONT color=#0000bb>$shu</FONT><FONT color=#007700>==</FONT><FONT color=#dd0000>""</FONT><FONT color=#007700>) die(</FONT><FONT color=#dd0000>"error id:1"</FONT></FONT><FONT face=新宋体><FONT color=#007700>);<BR>    </FONT><FONT color=#0000bb>$shuju</FONT><FONT color=#007700>=</FONT><FONT color=#0000bb>split</FONT><FONT color=#007700>(</FONT><FONT color=#dd0000>","</FONT><FONT color=#007700>,</FONT><FONT color=#0000bb>$shu</FONT></FONT><FONT face=新宋体 color=#007700>);<BR>    </FONT><FONT face=新宋体><FONT color=#ff8000>//计算最大值<BR>    </FONT><FONT color=#007700>for(</FONT><FONT color=#0000bb>$i</FONT><FONT color=#007700>=</FONT><FONT color=#0000bb>0</FONT><FONT color=#007700>;</FONT><FONT color=#0000bb>$i</FONT><FONT color=#007700>&lt;</FONT><FONT color=#0000bb>count</FONT><FONT color=#007700>(</FONT><FONT color=#0000bb>$shu</FONT><FONT color=#007700>);</FONT><FONT color=#0000bb>$i</FONT></FONT><FONT face=新宋体><FONT color=#007700>++)<BR>    {<BR>      if(!</FONT><FONT color=#0000bb>is_numeric</FONT><FONT color=#007700>(</FONT><FONT color=#0000bb>$shu</FONT><FONT color=#007700>[</FONT><FONT color=#0000bb>$i</FONT><FONT color=#007700>])) die(</FONT><FONT color=#dd0000>"error id:2"</FONT></FONT><FONT face=新宋体><FONT color=#007700>);<BR>      if(</FONT><FONT color=#0000bb>$shu</FONT><FONT color=#007700>[</FONT><FONT color=#0000bb>$i</FONT><FONT color=#007700>]&gt;</FONT><FONT color=#0000bb>$zuidashu</FONT><FONT color=#007700>) </FONT><FONT color=#0000bb>$zuidashu</FONT><FONT color=#007700>=</FONT><FONT color=#0000bb>$shu</FONT><FONT color=#007700>[</FONT><FONT color=#0000bb>$i</FONT></FONT><FONT face=新宋体><FONT color=#007700>];<BR>    }<BR>  </FONT><FONT color=#0000bb>?&gt;</FONT></FONT><CODE><FONT color=#000000><BR>  &lt;table border=0&gt;<BR>    &lt;tr valign="bottom"&gt;</FONT></CODE><CODE><FONT color=#000000><FONT color=#0000bb>&lt;?php </FONT><FONT color=#ff8000>/*一定要设置为低部对齐*/ </FONT><FONT color=#0000bb>?&gt;</FONT></FONT></CODE><CODE><FONT color=#000000><BR>    </FONT></CODE><CODE><FONT color=#000000><FONT color=#0000bb>&lt;?php<BR>      </FONT><FONT color=#007700>for(</FONT><FONT color=#0000bb>$i</FONT><FONT color=#007700>=</FONT><FONT color=#0000bb>0</FONT><FONT color=#007700>,</FONT><FONT color=#0000bb>$j</FONT><FONT color=#007700>=</FONT><FONT color=#0000bb>0</FONT><FONT color=#007700>;</FONT><FONT color=#0000bb>$i</FONT><FONT color=#007700>&lt;</FONT><FONT color=#0000bb>count</FONT><FONT color=#007700>(</FONT><FONT color=#0000bb>$shu</FONT><FONT color=#007700>);</FONT><FONT color=#0000bb>$i</FONT><FONT color=#007700>++,</FONT><FONT color=#0000bb>$j</FONT><FONT color=#007700>++)<BR>      {<BR>        if(</FONT><FONT color=#0000bb>$j</FONT><FONT color=#007700>&gt;</FONT><FONT color=#0000bb>19</FONT><FONT color=#007700>){</FONT><FONT color=#0000bb>$j</FONT><FONT color=#007700>=</FONT><FONT color=#0000bb>0</FONT><FONT color=#007700>;}<BR>    </FONT><FONT color=#0000bb>?&gt;</FONT></FONT></CODE><CODE><FONT color=#000000><BR>    &lt;td align="center"&gt;<BR>    </FONT></CODE><CODE><FONT color=#000000><FONT color=#0000bb>&lt;?php<BR>      </FONT><FONT color=#ff8000>/*在柱状图的顶端输出数值*/<BR>      </FONT><FONT color=#007700>echo </FONT><FONT color=#0000bb>$shu</FONT><FONT color=#007700>[</FONT><FONT color=#0000bb>$i</FONT><FONT color=#007700>]; <BR>    </FONT><FONT color=#0000bb>?&gt;</FONT></FONT></CODE><CODE><FONT color=#000000><BR>        &lt;table height="</FONT></CODE>&lt;? <RE>echo floor(($this-&gt;height/$zuidashu)*$shu[$i]);?&gt;" border=0&gt;        &lt;tr&gt;        &lt;td bgcolor="</PRE><FONT face=新宋体><CODE><FONT color=#000000><FONT color=#0000bb>&lt;?php </FONT><FONT color=#ff8000>/*柱状颜色*/ </FONT><FONT color=#007700>echo </FONT><FONT color=#0000bb>$color</FONT><FONT color=#007700>[</FONT><FONT color=#0000bb>$j</FONT><FONT color=#007700>]; </FONT><FONT color=#0000bb>?&gt;</FONT></FONT></CODE><CODE><FONT color=#000000>" width="</FONT></CODE><CODE><FONT color=#000000><FONT color=#0000bb>&lt;?php </FONT><FONT color=#ff8000>/*第条柱的宽度*/ </FONT><FONT color=#007700>echo </FONT><FONT color=#0000bb>$this</FONT><FONT color=#007700>-&gt;</FONT><FONT color=#0000bb>perwidth</FONT><FONT color=#007700>; </FONT><FONT color=#0000bb>?&gt;</FONT></FONT></CODE></FONT><CODE><FONT face=新宋体><FONT color=#000000>"&gt;&lt;/td&gt;<BR>          &lt;/tr&gt;<BR>      &lt;/table&gt;&lt;font color="#3F7F9F"&gt;</FONT></FONT></CODE>&lt;? <RE>php /*打印低部对应标签*/ echo $biaoqian[$i];?&gt;&lt;/font&gt;      &lt;/td&gt;    </PRE><CODE><FONT color=#000000><FONT face=新宋体><FONT color=#0000bb>&lt;?php </FONT><FONT color=#007700>} </FONT><FONT color=#0000bb>?&gt;</FONT></FONT></FONT></CODE><CODE><FONT color=#000000><BR><FONT face=新宋体>    &lt;/tr&gt;<BR>  &lt;/table&gt;<BR>  </FONT></FONT><FONT face=新宋体></FONT></CODE><CODE><FONT face=新宋体><SPAN  #0000bb">&lt;?php<BR><SPAN  #ffffff 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN  #0000bb">  } //End function<BR><SPAN  #ffffff 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN  #007700">} // End histogram Class<BR><SPAN  #ffffff 1px solid; BACKGROUND-COLOR: #eeeeee"> <BR><SPAN  #0000bb">?&gt;</SPAN></FONT><BR></CODE><RE> </PRE>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-5 20:51 , Processed in 0.072479 second(s), 21 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表