echarts中柱狀圖折線圖的基本配置


最近項目中有用到echarts展示數據,方便用戶以及平台分析,本打算用canvas自己寫一個,不過鑒於業務需求以及后續項目用到的頻率,還是決定自己學習echarts,echarts相對於highcharts是一個免費的開源框架,調查了一下午寫出了符合公司設計的圖表數據展示,中間也遇到了一些坑,現在做一個小的總結,首先參考官方文檔http://echarts.baidu.com/index.html中的文檔下面的教程,我項目中用的是ng+webpack

在項目目錄下安裝   npm install echarts --save

2  可以在對應的用到處引入echarts ,可以根據項目中所用到的模塊按需加載 

// 引入 ECharts 主模塊
var echarts = require('echarts/lib/echarts');
// 引入柱狀圖
require('echarts/lib/chart/bar');
//引入折線圖
require('echarts/lib/chart/line');  

此處我只用到了柱狀圖,以及折線圖,

3 做一些參數配置,

先說一些最基本的

var myChart = echarts.init(document.getElementById('recordBar'));
myChart.setOption(options);

>在結構中先定義一個容器ID,定義寬高;

>

var options={
xAxis: {
data: ['10','11','12','13','14','15','16'],
   },
   yAxis: {

},
   series: [
{
// name: '銷量',  
           type: 'bar',      //類型設定柱狀圖
           barWidth: 24,     //柱狀圖寬度
           data:[10,20,30,40,20,30,10],
           itemStyle: {
normal: {
// color:'#fff'     //柱狀圖顏色tongyi
                   color: function (params) { //單獨設置沒一個柱狀圖顏色
                       var colorList = ['rgb(255,255,255)', 'rgb(255,255,255)', 'rgb(255,255,255)',
                           'rgb(255,255,255)', 'rgb(255,255,255)', 'rgb(255,255,255)',
                           '#e1c8a4',];
                       return colorList[params.dataIndex];
                   }
}
},
           barGap: '20'          //柱間距    目前不好使
       },
   ]
};

這是必不可少的配置,這樣一個最基本的柱狀圖就出現了,不過會出現X軸,Y軸,以及背景網格,這些在實際開發中多半是不需要的,所以就要去掉X軸,但要保留文本信息,解決方案如下

xAxis: {
data: $scope.oneData.day,
   //splitLine:{show: false},//去除網格線
   show: true,   //去除坐標為false
   //設置x軸坐標顏色
   axisLine: {
lineStyle: {
color: '#45c08a',
       }
},
   //設置x軸文本顏色
   axisLabel: {
show: true,
       textStyle: {
color: 'rgba(255,255,255,0.7)'                    //x軸文本顏色
       }
}
},

將x軸坐標設顏色與背景顏色一致隱藏,文本顏色單獨設置,y軸不要直接將show:false,將坐標以及信息全去掉,另外就是去背景網格線,

splitLine:{show: false},//去除網格線

柱狀圖間距是默認的,可以修改barGap:'xxx',既可以為百分比,又可以為具體值,柱狀圖可以單獨設置每一個顏色,如下

itemStyle: {
normal: {
// color:'#fff'     //柱狀圖顏色tongyi
       color: function (params) { //單獨設置沒一個柱狀圖顏色
           var colorList = ['rgb(255,255,255)', 'rgb(255,255,255)', 'rgb(255,255,255)',
               'rgb(255,255,255)', 'rgb(255,255,255)', 'rgb(255,255,255)',
               '#e1c8a4',];
           return colorList[params.dataIndex];
       }
}
},

我直接放的項目中代碼,前六個為白色,最后一個顯示橘色,突出今日交易量,如果項目中需要折線圖一並顯示,只需要在series中添加一個{},也可以單獨將折線圖放另外一個容器,

//折線數據
{
name: '交易量',
   type: 'line',
   symbol: 'square',   //將折線原點改為方塊
   symbolSize: 6,     //拐點大小
   itemStyle: {
normal: {
color: function (params) { //單獨設置每一個折點顏色
               var colorList = ['rgb(255,255,255)', 'rgb(255,255,255)', 'rgb(255,255,255)', 'rgb(255,255,255)', 'rgb(255,255,255)', 'rgb(255,255,255)', '#e1c8a4'];
               return colorList[params.dataIndex];
           },       //折點顏色
           lineStyle: {
color: 'rgba(255,255,255,0.7)',    //折線顏色
           }
}
},
   data: $scope.oneData.line
   //data:[40,50,60,70,50,90,80]
},

以上設置一個type類型,以及將拐點從默認的原點改為方塊,以及設置方塊大小,單獨設置每一個折點顏色,也可統一設置一種顏色,以及折線顏色,data用來填充數據的,我是從接口中獲得后定義數組展示的

最后一點就是容器怎么適應手機屏幕,如下

//設置容器上下左右間隔
grid: {
// left: '50',
   // right: '10',
   //  bottom: '20',              //left,right,bottom,為容器距離外側包含塊的距離
   // containLabel: true
   x: 0,
   y: 20,
   x2: 0,
   y2: 30              //x,y代表縱坐標的左上角距離容器的大小     ---x2,y2代表橫坐標的右下角距離容器的大小
},

 

寫的比較清楚,可自測。我的布局是給定了容器寬高,利用flex布局將其容器先居中,容器寬是根據柱寬加一定間距算出來的,

這是有一個數據的情況下,左邊折線在最低處也是因為在一個容器內

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM