zoukankan      html  css  js  c++  java
  • ExtJS 饼状图报表

    简单的ExtJS饼状图报表。

    先上源码,咱再慢慢解析:

    Ext.onReady(function(){
                    var store = Ext.create('Ext.data.JsonStore', {
                        fields: ['name', 'data'],
                        data: [
                            { 'name': '北京',   'data': 10 },
                            { 'name': '天津',   'data':  5},
                            { 'name': '上海',   'data':  8 },
                            { 'name': '深圳',   'data':  7 },
                            { 'name': '广州',   'data':  6 },
                            { 'name': '济南',   'data':  5 },
                            { 'name': '郑州',   'data':  4 },
                            { 'name': '石家庄',   'data':  3 }
                        ]
                    });
                    Ext.create("Ext.panel.Panel",{
                        600,
                        height:500,
                        title:"饼状图",
                        layout:"fit",
                        renderTo:Ext.getBody(),
                        items:[{
                            xtype:"chart",
                            store:store,
                            animate:true,
                            legend: {
                                position: 'right'
                            },
                            series:[{
                                type:"pie",
                                field:"data",
                                donut:true,
                                showInLegend: true,
                                label:{
                                    display:"name",
                                    contrast:true,
                                },
                                tips:{
                                    trackMouse:true,
                                    renderer:function(storeItem,item){
                                        var total = 0;
                                        store.each(function(rec) {
                                            total += rec.get('data');
                                        });
                                        this.setTitle(storeItem.get("data"));
                                    }
                                },
                                highlight:{
                                    segment:{
                                        margin:20
                                    }
                                },
                                listeners:{
                                    itemclick:function(o){
                                        var rec=store.getAt(o.index);
                                        alert(rec.get("data"));
                                    }
                                }
                                
                            }]
                        }]
                    });
                })

    上述代码便是一个简单的饼状图,数据这里我采用的是本地数据。

    示例效果如下图所示:

    现在我们来解析一下上面的代码:

    里面的store存储数据,这里我就不详细解释了。我这里采用的是本地的数据。

    如效果图所示,我采用了一个panel来包含该饼状图。

    xtype:"chart" :创建一个图表

    series:是为所有图标系列包含公共逻辑抽象类。属性type:"pie",用来表示采用的是饼状报表。

    field:"data":当前饼状图块中的数据值。

    display:"name":如上图所示,是用来显示饼状图中的文字的。

    tips:这里是用来显示鼠标放在饼状图上的时候,给你的一个提示。用来显示当前图块的信息。

    trackMouse:true:此属性设置为true表示提示框跟随你的鼠标而动。

    segment:该属性是用来控制,当鼠标放在当前图块中的时候分开的距离。这里margin一般为20 当数值比20 大或者小的时候则会出现一些空白。具体效果可以自己稍微尝试一下。

    lengend和showInLegend:这两个必须同时设置,操作右侧的小图例。

    itemclick:点击事件。这个事件需要设置在series中,否则无法触发。

    以上是我对这个饼状图的一些个人理解。如有什么不足还请各位大神指教。

  • 相关阅读:
    TSQL--NESTED LOOPS JOIN
    TSQL--SORT MERGE JOIN
    TSQL--HASH JOIN
    Backup--备份相关的信息查看及小技巧
    java后台json如何传递到jsp中解析
    大数据资源
    oracle sql生成日历表
    easyUI中onLoadSuccess方法获取多个对象
    征信用户数据分析
    JS优秀资源站点收集
  • 原文地址:https://www.cnblogs.com/dolphin-gjh/p/4146956.html
Copyright © 2011-2022 走看看