实现仿流量统计地区分布 flash 饼状分析图代码实例

浏览:1793 发布日期:2014/11/15 分类:功能实现 关键字: 饼状分析图 流量统计 地区分布
实现仿流量统计地区分布 flash 饼状分析图代码实例
今天给大家分享一个 flash 动画效果饼状地区分布图。用过流量统计的朋友都知道,流量统计中的地域分布状图很给力,当鼠标移动到某个区域,那个区域就会自动分离。正如下面效果图片所示:

本文所用到的数据表及插件下载地址: http://www.jb100.net/html/content-28-373-1.html
从以上地址下载所需要的资料后下,将数据表导入数据库,将charts文件放到public文件夹下。

下面废话少说就直接上代码了 ,PHP代码:    public function fenbu(){
        $this->checkuser('stats_dq');
        $end_date =strtotime(date('Y-m-d',time()));
        $start_date = $end_date-31536000;
        $area_xml = "<graph caption='地区分布统计' shownames='1' showvalues='1' decimalPrecision='2' outCnvBaseFontSize='13' baseFontSize='13' pieYScale='45'  pieBorderAlpha='40' pieFillAlpha='70' pieSliceDepth='15' pieRadius='100' bgAngle='460'>";
        $sql = "SELECT COUNT(*) AS access_count, area FROM ja_stats " .
                " WHERE access_time >= '$start_date' AND access_time < " .($end_date + 86400).
                " GROUP BY area ORDER BY access_count DESC LIMIT 20";
        $res = M('stats')->query($sql);
        $key=0;
        foreach ($res as $val){
            $area = empty($val['area']) ? 'unknow' : $val['area'];
            $area_xml .= "<set name='$area' value='$val[access_count]' color='" .$this->chart_color($key). "' />";
            $key++;
        }
        $area_xml .= '</graph>';

        $from_xml = "<graph caption='来源网站统计' shownames='1' showvalues='1' decimalPrecision='2' outCnvBaseFontSize='12' baseFontSize='12' pieYScale='45' pieBorderAlpha='40' pieFillAlpha='70' pieSliceDepth='15' pieRadius='100' bgAngle='460'>";

        $sql = "SELECT COUNT(*) AS access_count, source_url FROM ja_stats " .
                " WHERE access_time >= '$start_date' AND access_time <= " .($end_date + 86400).
                " GROUP BY source_url ORDER BY access_count DESC LIMIT 20";
        $res =  M('stats')->query($sql);
        $key=0;
        foreach ($res as $val){
            $from = empty($val['source_url']) ? '直接输入网址' : $val['source_url'];
            $from_xml .= "<set name='".str_replace(array('http://', 'https://'), array('', ''), $from) . "' value='$val[access_count]' color='" . $this->chart_color($key). "' />";
            $key++;
        }
        $from_xml .= '</graph>';
        
    
        $this->assign('from_data',    $from_xml);

        $this->assign('area_data',    $area_xml);
         
        $this->display();        
    }
    public  function chart_color($n){
        /* 随机显示颜色代码 */
        $arr = array('33FF66', 'FF6600', '3399FF', '009966', 'CC3399', 'FFCC33', '6699CC', 'CC3366', '33FF66', 'FF6600', '3399FF');

        if ($n > 8){
            $n = $n % 8;
        }
        return $arr[$n];
    }
 
HTML代码:            <div class="call_top">地区分布</div>
            <div class="data_city">
             <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"  codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="900" HEIGHT="300" id="General" ALIGN="middle">
              <PARAM NAME="FlashVars" value="&dataXML={$area_data}">
              <PARAM NAME=movie VALUE="__PUBLIC__/images/charts/pie3d.swf?chartWidth=900&chartHeight=300">
              <PARAM NAME=quality VALUE=high>
              <PARAM NAME=bgcolor VALUE=#FFFFFF>
              <param NAME="wmode" VALUE="opaque" />
              <EMBED src="__PUBLIC__/images/charts/pie3d.swf?chartWidth=900&chartHeight=300" FlashVars="&dataXML={$area_data}" quality=high bgcolor=#FFFFFF WIDTH="900" HEIGHT="300" NAME="General" ALIGN="middle"  wmode="opaque" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>
              </OBJECT>  
            
            </div>
本文所用到的数据表及插件下载地址:http://www.jb100.net/html/content-28-373-1.html
希望本文所述对大家有所帮助,也希望大家继续关注我!
评论( 相关
后面还有条评论,点击查看>>