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 相关文章推荐
PHP出错界面
Oct 09 PHP
PHP的开合式多级菜单程序
Oct 09 PHP
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
Dec 06 PHP
php入门学习知识点五 关于php数组的几个基本操作
Jul 14 PHP
解析CI的AJAX分页 另类实现方法
Jun 27 PHP
百度站点地图(百度sitemap)生成方法分享
Jan 09 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
Jun 10 PHP
php处理多图上传压缩代码功能
Jun 13 PHP
基于swoole实现多人聊天室
Jun 14 PHP
浅谈PHP进程管理
Mar 08 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
Apr 02 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
May 12 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
php visitFile()遍历指定文件夹函数
2010/08/21 PHP
ThinkPHP3.1的Widget新用法
2014/06/19 PHP
php开发工具有哪五款
2015/11/09 PHP
用jscript实现新建word文档
2007/06/15 Javascript
javascript 自动填写表单的实现方法
2010/04/09 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
2015/10/28 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
2015/11/07 Javascript
跟我学习javascript的浮点数精度
2015/11/16 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
2016/08/11 Javascript
Bootstrap CSS组件之导航(nav)
2016/12/17 Javascript
微信小程序开发教程-手势解锁实例
2017/01/06 Javascript
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
python pygame实现2048游戏
2018/11/20 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
基于python的selenium两种文件上传操作实现详解
2019/09/19 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
Pythonic版二分查找实现过程原理解析
2020/08/11 Python
从当地商店送来的杂货:Instacart
2018/08/19 全球购物
开普敦通行证:Cape Town Pass
2019/07/18 全球购物
三年级数学教学反思
2014/01/31 职场文书
法律专业求职信
2014/05/24 职场文书
关于读书的演讲稿400字
2014/08/27 职场文书
分居协议书范本
2014/11/03 职场文书
财务会计实训报告
2014/11/05 职场文书
行风评议整改报告
2014/11/06 职场文书
项目建议书
2015/02/04 职场文书
社区志愿服务活动感想
2015/08/07 职场文书
导游词之麻姑仙境
2019/11/18 职场文书
go开发alertmanger实现钉钉报警
2021/07/16 Golang