G2 图表统计

8 篇文章 0 订阅
4 篇文章 0 订阅

index.php

$data1 = [
    [
        "label" => "Mon.",
        "type" => "series1",
        "value" => 2800,
    ],
    [
        "label" => "Mon.",
        "type" => "series2",
        "value" => 2260,
    ],
    [
        "label" => "Tues.",
        "type" => "series1",
        "value" => 1800,
    ],
    [
        "label" => "Tues.",
        "type" => "series2",
        "value" => 1300,
    ],
];

$this->assign('data1' , json_encode($data1));

return $this->fetch("index");

 

index.html

<script>
/*Fixing iframe window.innerHeight 0 issue in Safari*/
    document.body.clientHeight;
</script>

<script src="https://gw.alipayobjects.com/os/antv/pkg/_antv.g2-3.3.0-beta.4/dist/g2.min.js"></script>
<script src="https://gw.alipayobjects.com/os/antv/pkg/_antv.data-set-0.9.6/dist/data-set.min.js"></script>
<script src="__ADMIN_JS__/chart.js"></script>

<div class="row">
    <div class="col-sm-4">
        <div id="mountNode1"></div>
    </div>
    <div class="col-sm-4">
        <div id="mountNode2"></div>
    </div>
    <div class="col-sm-4">
        <div id="mountNode3"></div>
    </div>
</div>

<script>

    //one
    i.groupingBarChart('{$data1}', 'mountNode1', 'type', 'label', 'value');

    //two
    i.groupingBarChart('{$data1}', 'mountNode2', 'type', 'label', 'value');
    
    //three
    i.groupingBarChart('{$data1}', 'mountNode3', 'type', 'label', 'value');

</script>

 

chart.js

(function(_) {
    /**
     * 分组条形图
     * @param data object/string json对象/json字符串
     * @param id string id属性值
     * @param type string 分类
     * @param label string 横坐标
     * @param value string 纵坐标
     * @param width int 宽度
     * @param height int 高度
     */
    _.groupingBarChart = function(data, id, type, label, value, width = 300, height = 300) {
        if(typeof(data) != "object" || Object.prototype.toString.call(data).toLowerCase() != "[object object]" || data.length) {
            data = eval('(' + data.replace(/&quot;/g, "\"") + ')');
        }

        var chart = new G2.Chart({
            container: id,
            width: width,
            height: height,
        });
        chart.source(data);
        chart.axis(value, {
            position: 'right'
        });
        chart.axis(label, {
            label: {
                offset: 12
            }
        });
        chart.coord().transpose().scale(1, -1);
        chart.interval().position(label + '*' + value).color(type).adjust([{
            type: 'dodge',
            marginRatio: 1 / 32
        }]);
        chart.render();
    }
})(i = {})

闭包用法

(function(_){
    _.a = 'a';
    _.b = function(){
        return 'b';
    }
    _.c = function(){
        return 'c';
    }
})(i={})

console.log(i.a);
console.log(i.b);
console.log(i.c());

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值