Ext4.1 chart的使用

var reportsPanel = Ext.create('Ext.panel.Panel', {
id:'reportsPanel',
   layout: 'fit',
   tbar: [{
       text: '保存報表',
       handler: function() {
           Ext.MessageBox.confirm('確認下載', '您想保存報表到圖片', function(choice){
               if(choice == 'yes'){
                   chart.save({
                       type: 'image/png'
                   });
               }
           });
       }
   },'-',{
    text: '分別顯示',
    menu:[{
text:'全年'
},'-',{
text:'季度'
},'-',{
text:'月份'
}]
   }],
   items:chart
});


var store1 = Ext.create('Ext.data.Store',{//JsonStore  
    fields:['date', 'price', 'sales'], //日期、單位價格、銷售額
    data: [
{date  :'1/1', price : 5, sales : 140}, 
{date  :'1/2', price : 29, sales : 135},
{date  :'1/3', price : 18, sales : 125},  
{date  :'1/4', price : 21, sales : 130},  
{date  :'1/5', price : 23,sales : 124},  
{date  :'1/6', price : 16, sales : 137},
{date  :'1/7', price : 13, sales : 90}, 
{date  :'1/8', price : 19, sales : 128},
{date  :'1/9', price : 21, sales : 159},  
{date  :'1/10', price : 40, sales : 151},  
{date  :'1/11', price : 30,sales : 89},  
{date  :'1/12', price : 19, sales : 130},
{date  :'1/13', price : 12, sales : 133}, 
{date  :'1/14', price : 3, sales : 96},
{date  :'1/15', price : 23, sales : 142},  
{date  :'1/16', price : 12, sales : 81},  
{date  :'1/17', price : 19,sales : 94},  
{date  :'1/18', price : 11, sales : 119},
{date  :'1/19', price : 22, sales : 120}, 
{date  :'1/20', price : 13, sales : 121},
{date  :'1/21', price : 35, sales : 135},  
{date  :'1/22', price : 12, sales : 111},  
{date  :'1/23', price : 36,sales : 117},  
{date  :'1/24', price : 19, sales : 117},
{date  :'1/26', price : 17, sales : 95}, 
{date  :'1/27', price : 38, sales : 135},
{date  :'1/28', price : 12, sales : 122},  
{date  :'1/29', price : 45, sales : 130},  
{date  :'1/30', price : 46,sales : 99},  
{date  :'1/31', price : 7, sales : 130}
    ]  
}); 
var chart = Ext.create('Ext.chart.Chart', {
    id: 'chartCmp',
    xtype: 'chart',
    style: 'background:#fff',
    theme: 'Category6',
    animate: true,
//    shadow: true,
    maximizable: true,  
    store: store1,
    axes: [{
        type: 'Numeric',
        position: 'left',
        fields: ['date','price', 'sales'],
        label: {
            renderer: Ext.util.Format.numberRenderer('0,0')
        },
        title: '價格:百噸',
        grid: true,
        minimum: 0
    }, {
        type: 'Category',
        position: 'bottom',
        fields: ['date'],
        title: '日期'
    }],
    series: [{//油品,單位價格價格浮動
        type: 'column',
        axis: 'left',
        highlight: true,
        tips: {
          trackMouse: true,
          width: 140,
          height: 28,
          renderer: function(storeItem, item) {
            this.setTitle(storeItem.get('date') + ': ' + storeItem.get('price')+'%');
          }
        },
        label: {
          display: 'insideEnd',
          'text-anchor': 'middle',
            field: 'date',
            renderer: Ext.util.Format.numberRenderer('0'),
            orientation: 'vertical',
            color: '#333'
        },
        xField: 'date',
        yField: 'price'
    },{//銷售額
    type: 'line',
        axis: 'left',
        tips: {
            trackMouse: true,
            width: 140,
            height: 28,
            renderer: function(storeItem, item) {
              this.setTitle(storeItem.get('date') + ': ' + storeItem.get('price')+'%');
            }
        },  
        smooth: true,
        markerConfig: {// 由Ext.Draw.Sprite配置項決定   
            type: 'circle',  
            size: 4,  
            radius: 4,  
            fill: '#00f',  
            'stroke-width': 0  
        },  
//        fill: true,
//        fillOpacity: 0.5,
        xField: 'date',
        yField: 'sales'
    }]

});ide


該圖表顯示的是不一樣月份不一樣單位價格的銷售業績post


圖表的幾大要素:字體

一、座標:上、下、左、右。this

座標的類型,數字、分類...spa

座標包括需要顯示的座標值。即綁定的字段orm

座標值的樣式。比方旋轉、字體大小、格式圖片

座標的最大值、最小值、是否顯示網格ip

座標旁邊顯示的文字ci

二、圖表:柱狀圖、折線圖、點圖、餅圖、區域圖、盤表圖、雷達圖...get

圖標的類型

圖表x、y軸相應的字段

圖標上顯示的文字,文字的樣式、位置

鼠標移上去需要顯示的提示信息

三、樣式

四、數據

屬性介紹:

axes:用來配置座標,可以配置多個座標。

type:配置座標的類型。

通常用到的是Numeric、Category

position:配置座標的位置。比方:上下左右

fields:可以配置多個字段。用來設置座標顯示的值。事實上這個配置和series中的yFiled配置項是沒有關係的

label:可以配置文字的顯示方式。

默認顯示字段的值。

比方設置label旋轉必定的度數

              label: {
                    rotate: {
                        degrees: 315
                    }
                }

title:配置座標需要顯示的title

grid:設定網格的樣式。比方設定網格的透明度、樣式等。

           grid: { // 設定網格顏色值
                    odd: {
                        opacity: 1,
                        fill: '#ddd',
                        stroke: '#bbb',
                        'stroke-width': 1
                    }
                }

minimum:可以配置座標的最小值。固然會有相應的最大值maximum。可以配合使用majorTickSteps(主刻度,配置總共同擁有多少個刻度),minorTickSteps(次刻度,在每個主可短中畫次刻度。

比方配置10。則數字沒添加10,會話一個次刻度)

series:用來配置圖表

type:配置圖表的類型,圖表有很是多類型。每個圖表都有各自獨特的配置項

axis:相對於哪一個座標。因爲座標有多個。圖表的高度,總的有個參照。

highlight:設置鼠標移動到圖表上面,是否高亮。只是這個反應很是慢。

tips:設置鼠標移動到圖表上時的提示信息

label:設置圖表上顯示的文字。可以設置文字的位置、樣式。但不是每個圖表都有這個配置項。

xField:設定x座標綁定的字段。

因爲axes設定了座標的值,因此這個字段綁定的值必須在axes的座標值中。

yField:設定y座標綁定的字段。

相關文章
相關標籤/搜索