php+highchats生成动态统计图


Posted in PHP onMay 21, 2014
    series: [{  
                type: 'pie',  
                name: 'Browser share',  
                data: [  
                    ['Firefox',   45.0],  
                    ['IE',       26.8],  
                    {  
                        name: 'Chrome',  
                        y: 12.8,  
                        sliced: true,  
                        selected: true  
                    },  
                    ['Safari',    8.5],  
                    ['Opera',     6.2],  
                    ['Others',   0.7]  
                ]  
            }] 

主要看这段:

    {  
    name: 'Chrome',  
    y: 12.8,  
    sliced: true,  
    selected: true  
    } 
    <!DOCTYPE HTML>  
    <html>  
        <head>  
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
            <title>FusionCharts</title>  
            <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>  
            <script type="text/javascript">  
    $(function () {  
    var ds = [{"name":"\u4e0a\u6d77","y":28.2},{"name":"\u5317\u4eac","y":48.2},{"name":"\u5e7f\u4e1c","y":18.2}];  
    //其实只要按照例子中的json显示方式展示就行了,如chrome。  
            // Radialize the colors  
            Highcharts.getOptions().colors = Highcharts.map(Highcharts.getOptions().colors, function(color) {  
                return {  
                    radialGradient: { cx: 0.5, cy: 0.3, r: 0.7 },  
                    stops: [  
                        [0, color],  
                        [1, Highcharts.Color(color).brighten(-0.3).get('rgb')] // darken  
                    ]  
                };  
            });  
            // Build the chart  
            $('#container').highcharts({  
                chart: {  
                    plotBackgroundColor: null,  
                    plotBorderWidth: null,  
                    plotShadow: false  
                },  
                title: {  
                    text: 'Browser market shares at a specific website, 2010'  
                },  
                tooltip: {  
                    pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'  
                },  
                plotOptions: {  
                    pie: {  
                        allowPointSelect: true,  
                        cursor: 'pointer',  
                        dataLabels: {  
                            enabled: true,  
                            color: '#000000',  
                            connectorColor: '#000000',  
                            formatter: function() {  
                                return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %';  
                            }  
                        }  
                    }  
                },  
                series: [{  
                    type: 'pie',  
                    name: 'Browser share',  
                    data: ds,  
                }]  
            });  
        });  
            </script>  
        </head>  
        <body>  
    <script src="js/hc.js"></script>  
    <script src="js/modules/exporting.js"></script>  
    <div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>  
    <?php  
    area();  
    /**  
     * 地区接口  
     * name名称  
     * y数据值  
     *   
     */  
    function area()  
    {  
        $b = array(  
                    array('name'=>'上海', 'y'=>28.2),  
                    array('name'=>'北京', 'y'=>48.2),  
                    array('name'=>'广东', 'y'=>18.2),  
            );  
        $data = json_encode($b);  
        echo($data);  
    }  
    ?>  
        </body>  
    </html> 

以下是php输出json数据,供js使用:

<?php   
$strs = @file("/proc/net/dev");   
for ($i = 2; $i < count($strs); $i++ )  
{  
    preg_match_all( "/([^\s]+):[\s]{0,}(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/", $strs[$i], $info );  
/*  $NetInput[$i] = formatsize($info[2][0]); 
    $NetOut[$i]  = formatsize($info[10][0]); 
*/   
    $tmo = round($info[2][0]/1024/1024, 5);   
    $tmo2 = round($tmo / 1024, 5);  
    $NetInput[$i] = $tmo2;  
    $tmp = round($info[10][0]/1024/1024, 5);   
    $tmp2 = round($tmp / 1024, 5);  
    $NetOut[$i] = $tmp2;  }  
$arr = array();  
if (false !== ($strs = @file("/proc/net/dev"))) :   
 for ($i = 2; $i < count($strs); $i++ ) :    
 preg_match_all( "/([^\s]+):[\s]{0,}(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/", $strs[$i], $info );  
    $arr[$i]["name"] = $info[1][0];  
    $arr[$i]["data"][0] = $NetInput[$i];  
    $arr[$i]["data"][1] = $NetOut[$i];  
 endfor;    
 endif;    
echo(json_encode($arr)); 
?>

输出:

{"2":{"name":"lo","data":[0,0]},"3":{"name":"eth0","data":[0.40377,0.00353]}}

js调用:

    series: [  
    <span style="white-space:pre">                      </span>ds[2], ds[3]  
    <span style="white-space:pre">                  </span>] 
PHP 相关文章推荐
解决控件遮挡问题:关于有窗口元素和无窗口元素
Jan 28 PHP
php实现的MySQL通用查询程序
Mar 11 PHP
apache2.2.4+mysql5.0.77+php5.2.8安装精简
Apr 29 PHP
php 图片上传类代码
Jul 17 PHP
php 字符串替换的方法
Jan 10 PHP
深入解析PHP的引用计数机制
Jun 14 PHP
PHP APC配置文件2套和参数详解
Jun 11 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
Dec 22 PHP
php用户密码加密算法分析【Discuz加密算法】
Oct 12 PHP
php 查找数组元素提高效率的方法详解
May 05 PHP
浅谈laravel aliases别名的原理
Oct 24 PHP
PHP接口类(interface)的定义、特点和应用示例
May 18 PHP
PhpDocumentor 2安装以及生成API文档的方法
May 21 #PHP
Smarty模板学习笔记之Smarty简介
May 20 #PHP
php实例分享之mysql数据备份
May 19 #PHP
dedecms函数分享之获取某一栏目所有子栏目
May 19 #PHP
ECMall支持SSL连接邮件服务器的配置方法详解
May 19 #PHP
PHP小技巧之JS和CSS优化工具Minify的使用方法
May 19 #PHP
php开启openssl的方法
May 15 #PHP
You might like
基于simple_html_dom的使用小结
2013/07/01 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
浅谈thinkphp5 instance 的简单实现
2017/07/30 PHP
JS远程获取网页源代码实例
2013/09/05 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
Javascript实现鼠标框选操作  不是点击选取
2016/04/14 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
Node.js 实现简单的接口服务器的实例代码
2017/05/23 Javascript
angularJS利用ng-repeat遍历二维数组的实例代码
2017/06/03 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
2017/09/04 Javascript
JavaScript引用类型RegExp基本用法详解
2018/08/09 Javascript
webpack5 联邦模块介绍详解
2020/07/08 Javascript
vue项目接口域名动态获取操作
2020/08/13 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
TensorFlow变量管理详解
2018/03/10 Python
python读取word文档,插入mysql数据库的示例代码
2018/11/07 Python
Django uwsgi Nginx 的生产环境部署详解
2019/02/02 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
python右对齐的实例方法
2020/07/05 Python
瑞典手机壳品牌:Richmond & Finch
2018/04/28 全球购物
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
伦敦新晋轻奢耳饰潮牌:Tada & Toy
2020/05/25 全球购物
PHP如何去执行一个SQL语句
2016/03/05 面试题
分层教学实施方案
2014/03/19 职场文书
个人租房协议书
2014/11/28 职场文书
2014年路政工作总结
2014/12/10 职场文书
公司庆典欢迎词
2015/01/26 职场文书
幼儿园开学温馨提示
2015/07/15 职场文书
致毕业季:你如何做好自己的职业生涯规划书?
2019/07/01 职场文书
详解Java实践之抽象工厂模式
2021/06/18 Java/Android
Redis主从复制操作和配置详情
2022/09/23 Redis