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 setcookie() cannot modify header information 的解决方法
Jan 09 PHP
二招解决php乱码问题
Mar 25 PHP
php Imagick获取图片RGB颜色值
Jul 28 PHP
php实现四舍五入的方法小结
Mar 03 PHP
php实现屏蔽掉黑帽SEO的搜索关键字
Apr 15 PHP
基于CakePHP实现的简单博客系统实例
Jun 28 PHP
PHP+Ajax实时自动检测是否联网的方法
Jul 01 PHP
Zend Framework实现具有基本功能的留言本(附demo源码下载)
Mar 22 PHP
iOS+PHP注册登录系统 PHP部分(上)
Dec 26 PHP
PHP实现的redis主从数据库状态检测功能示例
Jul 20 PHP
PHP进阶学习之类的自动加载机制原理分析
Jun 18 PHP
一文看懂PHP进程管理器php-fpm
Jun 01 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中的时间处理
2006/10/09 PHP
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
php生成0~1随机小数的方法(必看)
2017/04/05 PHP
PHP基于GD库实现的生成图片缩略图函数示例
2017/07/05 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
JavaScript 全角转半角部分
2009/10/28 Javascript
jquery实现非叠加式的搜索框提示效果
2014/01/07 Javascript
JS的数组迭代方法
2015/02/05 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
微信小程序 教程之wxapp视图容器 swiper
2016/10/19 Javascript
bootstrap表格内容过长时用省略号表示的解决方法
2017/11/21 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
2017/12/05 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
JS判断数组里是否有重复元素的方法小结
2019/05/21 Javascript
详解element上传组件before-remove钩子问题解决
2020/04/08 Javascript
Python实现在线程里运行scrapy的方法
2015/04/07 Python
分析并输出Python代码依赖的库的实现代码
2015/08/09 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
Anaconda 查看、创建、管理和使用python环境的方法
2019/12/03 Python
在 Python 中接管键盘中断信号的实现方法
2020/02/04 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
python如何操作mysql
2020/08/17 Python
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
英国综合网上购物商城:The Hut
2018/07/03 全球购物
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
英国电信商店:BT Shop
2019/12/17 全球购物
Dr. Martens马汀博士德国官网:马丁靴鼻祖
2019/12/26 全球购物
电气技术员岗位职责
2013/11/19 职场文书
《两个铁球同时着地》教学反思
2014/02/13 职场文书
天猫某品牌专卖店运营计划书
2014/03/21 职场文书
服务理念口号
2014/06/11 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
2016消防宣传标语口号
2015/12/26 职场文书
创业计划书之网吧
2019/10/10 职场文书