资讯专栏INFORMATION COLUMN

Highcharts+PHP+Mysql生成饼状统计图

xiaokai / 1566人阅读

摘要:演示下载地址效果图首先我们建一张表作为统计数据。百分比代码如下格式化数据实际数据是这样的格式化数据最后我们要保留两位小数,代码贴下保留位小数错误的参数

演示下载地址:http://www.erdangjiade.com/js...
效果图:

Mysql
    首先我们建一张·chart_pie·表作为统计数据。
    -- 
    -- 表的结构 `chart_pie` 
    -- 
     
    CREATE TABLE IF NOT EXISTS `chart_pie` ( 
      `id` int(11) NOT NULL AUTO_INCREMENT, 
      `title` varchar(30) NOT NULL, 
      `pv` int(10) NOT NULL, 
      PRIMARY KEY (`id`) 
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ; 
     
    -- 
    -- 转存表中的数据 `chart_pie` 
    -- 
     
    INSERT INTO `chart_pie` (`id`, `title`, `pv`) VALUES 
    (1, "百度", 1239), 
    (2, "google", 998), 
    (3, "搜搜", 342), 
    (4, "必应", 421), 
    (5, "搜狗", 259), 
    (6, "其他", 83);
    PHP
    在pie.php我们要生成数据给前端调用:
    $query = mysql_query("select * from chart_pie");  
    while($row = mysql_fetch_array($query)){  
        $arr[] = array(  
            $row["title"],intval($row["pv"])  
        );  
    }  
    $data = json_encode($arr);
    jQuery
    $(function() { 
        $("#highcharts").highcharts({ 
            chart: { 
                renderTo: "chart_pie", 
                //饼状图关联html元素id值 
                defaultSeriesType: "pie", 
                //默认图表类型为饼状图 
                plotBackgroundColor: "#ffc", 
                //设置图表区背景色 
                plotShadow: true //设置阴影 
            }, 
            title: { 
                text: "搜索引擎统计分析" //图表标题 
            }, 
            credits: { 
                text: "erdangjiade.com" 
            }, 
            tooltip: { 
                formatter: function() { //鼠标滑向图像提示框的格式化提示信息 
                    return "" + this.point.name + ": " + twoDecimal(this.percentage) + " %"; 
                } 
            }, 
            plotOptions: { 
                pie: { 
                    allowPointSelect: true, 
                    //允许选中,点击选中的扇形区可以分离出来显示 
                    cursor: "pointer", 
                    //当鼠标指向扇形区时变为手型(可点击) 
                    //showInLegend: true,  //如果要显示图例,可将该项设置为true 
                    dataLabels: { 
                        enabled: true, 
                        //设置数据标签可见,即显示每个扇形区对应的数据 
                        color: "#000000", 
                        //数据显示颜色 
                        connectorColor: "#999", 
                        //设置数据域扇形区的连接线的颜色 
                        style: { 
                            fontSize: "12px" //数据显示的大小 
                        }, 
                        formatter: function() { //格式化数据 
                            return "" + this.point.name + ": " + twoDecimal(this.percentage) + " %"; 
                            //return "" + this.point.name + ": " + this.y ; 
                        } 
                    } 
                } 
            }, 
            series: [{ //数据列 
                name: "search engine", 
                data: data //核心数据列来源于php读取的数据并解析成JSON 
            }] 
        }); 
    });
    此外,格式化数据市,如果要显示百分比,可使用this.percentage,Highcharts会自动将整数转换为百分数,如果要显示数据量,直接使用this.y。
    百分比代码如下:
    formatter: function() { //格式化数据  
        return "" + this.point.name + ": " + twoDecimal(this.percentage) + " %";  
    }
    实际数据是这样的:
    formatter: function() { //格式化数据  
        return "" + this.point.name + ": " + this.y ;  
    }
    最后我们要保留两位小数,代码贴下:
    function twoDecimal(x) { //保留2位小数 
        var f_x = parseFloat(x); 
        if (isNaN(f_x)) { 
            alert("错误的参数"); 
            return false; 
        } 
        var f_x = Math.round(x * 100) / 100; 
        var s_x = f_x.toString(); 
        var pos_decimal = s_x.indexOf("."); 
        if (pos_decimal < 0) { 
            pos_decimal = s_x.length; 
            s_x += "."; 
        } 
        while (s_x.length <= pos_decimal + 2) { 
            s_x += "0"; 
        } 
        return s_x; 
    }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/50593.html

相关文章

  • Highcharts+PHP+Mysql生成饼状统计

    摘要:演示下载地址效果图首先我们建一张表作为统计数据。百分比代码如下格式化数据实际数据是这样的格式化数据最后我们要保留两位小数,代码贴下保留位小数错误的参数 演示下载地址:http://www.erdangjiade.com/js...效果图:showImg(https://segmentfault.com/img/bVKSyF?w=681&h=403); Mysql 首先我们建一张...

    ninefive 评论0 收藏0
  • Highcharts+PHP+Mysql生成饼状统计

    摘要:演示下载地址效果图首先我们建一张表作为统计数据。百分比代码如下格式化数据实际数据是这样的格式化数据最后我们要保留两位小数,代码贴下保留位小数错误的参数 演示下载地址:http://www.erdangjiade.com/js...效果图:showImg(https://segmentfault.com/img/bVKSyF?w=681&h=403); Mysql 首先我们建一张...

    cocopeak 评论0 收藏0
  • 论初级PHPer如何点亮技能树

    摘要:此篇文章并未如何教你怎么面试的时候吹逼,而是给一点点建议,如何更聪明地达到目的。据不完全统计,基本都是做管理后台改。不要太沉溺和纠结于技术,把重心移到业务能力上,踏踏实实做事。 前言   对于很多刚毕业或者大四的同学,都会有个困惑,我如何学PHP,为什么知识会那么杂,然后实习中公司大概需要哪些要求。此篇文章并未如何教你怎么面试的时候吹逼,而是给一点点建议,如何更聪明地达到目的。 实习可...

    eternalshallow 评论0 收藏0
  • echarts 与 highcharts

    摘要:渲染能力采用渲染除了对使用,一般来说,更适合绘制图形元素数量非常大这一般是由数据量大导致的图表如热力图地理坐标系或平行坐标系上的大规模线图或散点图等,也利于实现某些视觉特效如交通图。 一.简介 echartsecharts是百度公司前端开发的一个图表库,2013年发布第一版,主要采用canvas画图,目前版本3.8.4;完全免费; highcharthighcharts是国外的一家公司...

    王笑朝 评论0 收藏0
  • highcharts实现饼状

    摘要:这里饼状图是用实现的。要实现按照用户的获得途径占比来制作一个饼状图,需要知道各个途径下分别有多少个用户。要实现这个目的,必须要从服务器端获取数据。客户来源占比图官网客户推荐高校外企人事部广告其它 Highcharts.chart(container, { chart: { plotBa...

    BlackFlagBin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<