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(2)
Oct 09 PHP
php数据库连接时容易出错的特殊符号问题
Sep 01 PHP
PHP中函数rand和mt_rand的区别比较
Dec 26 PHP
destoon实现商铺管理主页设置增加新菜单的方法
Jun 26 PHP
php实现指定字符串中查找子字符串的方法
Mar 17 PHP
php简单获取目录列表的方法
Mar 24 PHP
php实现的mongodb操作类实例
Apr 03 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
Nov 16 PHP
php中简单的对称加密算法实现
Jan 05 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
Jul 03 PHP
IOS 开发之NSDictionary转换成JSON字符串
Aug 14 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
Aug 21 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中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
php实现文件下载(支持中文文名)
2013/12/04 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
2014/04/21 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
2015/05/27 PHP
实现PHP框架系列文章(6)mysql数据库方法
2016/03/04 PHP
PHP基于Closure类创建匿名函数的方法详解
2017/08/17 PHP
PHP实现文件上传与下载
2020/08/28 PHP
用js实现手把手教你月入万刀(转贴)
2007/11/07 Javascript
javascript 变量作用域 代码分析
2009/06/26 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
jQuery为iframe的body添加click事件的实现代码
2011/04/07 Javascript
jQuery中RadioButtonList的功能及用法实例介绍
2013/08/23 Javascript
jquery取消选择select下拉框示例代码
2014/02/22 Javascript
使用JavaScript为Kindeditor自定义按钮增加Audio标签
2016/03/18 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
JS实现加载和读取XML文件的方法详解
2017/04/24 Javascript
Vue.js数据绑定之data属性
2017/07/07 Javascript
详解javascript中的变量提升和函数提升
2018/05/24 Javascript
小程序实现多选框功能
2018/10/30 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
vue 使用localstorage实现面包屑的操作
2020/11/16 Javascript
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python中的五种异常处理机制介绍
2014/09/02 Python
Python开发的实用计算器完整实例
2017/05/10 Python
Django框架模板注入操作示例【变量传递到模板】
2018/12/19 Python
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
详解HTML5通讯录获取指定多个人的信息
2016/12/20 HTML / CSS
宠物店的创业计划书范文
2014/01/11 职场文书
公司营业员的自我评价
2014/03/04 职场文书
班主任经验交流会主持词
2014/04/01 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
2016学校元旦晚会经典开场白台词
2015/12/03 职场文书
JS数组的常用方法整理
2021/03/31 Javascript
vue实现水波涟漪效果的点击反馈指令
2021/05/31 Vue.js