echarts简单条形图和饼状图

填充条形图:

我这说的固定的意思是要展示的字段是已知的,动态的是接受到的后台返回的json然后遍历动态加载。

1.固定值

function xmhtCountByMonthBar(data){
		var dom = document.getElementById("xmhtCountByMonthBar");
		var myChart = echarts.init(dom);
		var app = {};
		option = null;
		option = {
		    legend: {},
		    tooltip: {},
		    dataset: {
		        source: [
		            ['product', '合同数'],
		            ['1月',  data.xmhts1],
		            ['2月',  data.xmhts2],
		            ['3月',  data.xmhts3],
		            ['4月',  data.xmhts4],
		            ['5月',  data.xmhts5],
		            ['6月',  data.xmhts6],
		            ['7月',  data.xmhts7],
		            ['8月',  data.xmhts8],
		            ['9月',  data.xmhts9],
		            ['10月',  data.xmhts10],
		            ['11月',  data.xmhts11],
		            ['12月',  data.xmhts12]
		        ]
		    },
		    toolbox: {
			     show: true,
			     feature: {
			       mark: { show: false },
			       dataView: { show: false, readOnly: false },
			       magicType: {
			         show: true,
			         type: ['pie', 'funnel']
			       },
			       restore: { show: false },
			       saveAsImage: { show: true }
			     }
			   },
		    grid: {
             left: '3%',
             right: '4%',
             bottom: '3%',
             containLabel: true
       },
	    xAxis: [{type: 'category', splitLine:{show: true},
	    	splitArea:{
	        	   show:true,
	        	   areaStyle:{
	        	       color:['rgba(100, 100, 100, 0.03)'],
	        	             }
	        	      }	
	    		}],
	    yAxis: {
	            type: 'value',
	            name: '数量(个)',
	            min: 0,
	           //	max: 50,
	           //	interval: 5,
	            minInterval: 1, //设置成1保证坐标轴分割刻度显示成整数。
	            axisLabel: {
	                formatter: '{value}'
	            }
	    },
	    series: [
	        {type: 'bar',
	        itemStyle : { normal: {label : {show: true, position: 'top',textStyle:{color:'#000000'}} }},	
	        barWidth : 15,
	        },
	    ]};
		if (option && typeof option === "object") {myChart.setOption(option, true);}
 }

 如图:

 

2.动态填充

 function xmhtCountByZbgsBar(names,nums){//接受names列名称,nums列值
		var dom = document.getElementById("xmhtCountByZbgsBar");
		var myChart = echarts.init(dom);
		 myChart.setOption({
             tooltip: {},
             legend: {
                 data:['合同数']
             },
             xAxis: {
                 data: [],
                 axisLabel:{
                	    formatter:function(value){
                	        return value.split("").join("\n");
                	    }
                	},
             type: 'category', 
             splitLine:{show: true},
 	    		splitArea:{
 	        	   show:true,
 	        	   areaStyle:{
 	        	       color:['rgba(100, 100, 100, 0.03)'],
 	        	             }
 	        	      }	
             },
             toolbox: {
			     show: true,
			     feature: {
			       mark: { show: false },
			       dataView: { show: false, readOnly: false },
			       magicType: {
			         show: true,
			         type: ['pie', 'funnel']
			       },
			       restore: { show: false },
			       saveAsImage: { show: true }
			     }
			   },
             yAxis: {
            	 type: 'value',
 	            name: '数量(个)',
 	            min: 0,
 	           //	max: 50,
 	           //	interval: 5,
 	            minInterval: 1, //设置成1保证坐标轴分割刻度显示成整数。
 	            axisLabel: {
 	                formatter: '{value}'
 	            }
             },
             series: [{
                 name: '个数',
                 type: 'bar',
                 data: []
             }]
         });
		 myChart.setOption({        //加载数据图表
             xAxis: {
                 data: names
             },
             series: [{
                 // 根据名字对应到相应的系列
                 name: '数量',
                 data: nums,
                 itemStyle : { normal: {label : {show: true, position: 'top',textStyle:{color:'#000000'}} }},	
     	        barWidth : 15,
             }]
         });
 } 

如图: 

 

 填充饼图:

1.设置固定值

 function xmhtByMonthSector(data){
	 var myChart = echarts.init(document.getElementById('xmhtByMonthSector'));
	 var option = {
	   title: {
	     x: 'left',
	     y: 'left'
	   },
	   tooltip: {
	     trigger: 'item',
	     formatter: "{a} <br/>{b} : {c} ({d}%)"
	   },
	   legend: {
	     x: 'right',
	     y: 'bottom',
	     data: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
	   },
	   toolbox: {
		     show: true,
		     feature: {
		       mark: { show: false },
		       dataView: { show: false, readOnly: false },
		       magicType: {
		         show: true,
		         type: ['pie', 'funnel']
		       },
		       restore: { show: false },
		       saveAsImage: { show: true }
		     }
		   },
	   calculable: true,
	   series: [
	     { 
	       name: '数量',
	       type: 'pie',
	       radius: ['30%', '60%'],
	       center: ['45%', '45%'],
	       //roseType: 'area',
	       data: [
	         { value: data.xmhts1==0?null:data.xmhts1, name: '一月' },
	         { value: data.xmhts2==0?null:data.xmhts2, name: '二月' },
	         { value: data.xmhts3==0?null:data.xmhts3, name: '三月' },
	         { value: data.xmhts4==0?null:data.xmhts4, name: '四月' },
	         { value: data.xmhts5==0?null:data.xmhts5, name: '五月' },
	         { value: data.xmhts6==0?null:data.xmhts6, name: '六月' },
	         { value: data.xmhts7==0?null:data.xmhts7, name: '七月' },
	         { value: data.xmhts8==0?null:data.xmhts8, name: '八月' },
	         { value: data.xmhts9==0?null:data.xmhts9, name: '九月' },
	         { value: data.xmhts10==0?null:data.xmhts10, name: '十月' },
	         { value: data.xmhts11==0?null:data.xmhts11, name: '十一月' },
	         { value: data.xmhts12==0?null:data.xmhts12, name: '十二月' }
	       ],
	      /*  tooltip: {
	            trigger: 'item',
	            showDelay: 20,   // 显示延迟,添加显示延迟可以避免频繁切换,单位ms
	            hideDelay: 20,   // 隐藏延迟,单位ms
	            backgroundColor: 'rgba(255,0,0,0.7)',  // 提示框背景颜色
	            textStyle: {
	              fontSize: '16px',
	              color: '#000'  // 设置文本颜色 默认#FFF
	            },
	            formatter: '{a} <br/>{b} : {c}个 ({d}%)'
	          } */
	     }
	   ]
	 };
	 myChart.setOption(option);
 }

  如图:

 

 2.动态值

 function xmhtByZbgsSector(names,nums){
	 var myChart = echarts.init(document.getElementById('xmhtByZbgsSector'));
	 myChart.setOption({
	       // color: ['#ff7d27', '#47b73d', '#fcc36e', '#57a2fd', "#228b22"],//饼图颜色
	        title: {
	   	     x: 'left',
	   	     y: 'left'
	   	   },
	        tooltip: {
	            trigger: 'item',
	            formatter: "{a} <br/>{b} : {c} ({d}%)"
	        },
	        toolbox: {
			     show: true,
			     feature: {
			       saveAsImage: { show: true }
			     }
			   },
	        legend: {
	        	 x: 'right',
	    	     y: 'bottom',
	            data: names
	        },
	        calculable: true,
	        series: [{
	        	 name: '数量',
	  	       type: 'pie',
	  	       radius: ['30%', '60%'],
	  	       center: ['45%', '40%'],
	            data: [],
	            // 设置值域的那指向线
	              labelLine: {
	                normal: {
	                  show: true   // show设置线是否显示,默认为true,可选值:true ¦ false
	                }
	              },
	        }]
	    });
	 //myChart.showLoading(); 
	 //myChart.hideLoading(); 
	   myChart.setOption({        //加载数据图表                
           legend: {
              data: names
           },
           series: [{
               data: nums
           }]
       });
	// myChart.setOption(option);
 }

  如图:

//////////////////////////

 

//项目数量统计饼图
 function itemsCountBySector1(data){
	 var myChart = echarts.init(document.getElementById('itemsSector1'));
	 var option = {
	   title: {
	     //text: '项目数量统计',
	     //subtext: '纯属虚构',
	     x: 'left',
	     y: 'left'
	   },
	   legend: {
           // orient 设置布局方式,默认水平布局,可选值:'horizontal'(水平) ¦ 'vertical'(垂直)
           orient: 'horizontal',
           // x 设置水平安放位置,默认全图居中,可选值:'center' ¦ 'left' ¦ 'right' ¦ {number}(x坐标,单位px)
           x: 'center',
           // y 设置垂直安放位置,默认全图顶端,可选值:'top' ¦ 'bottom' ¦ 'center' ¦ {number}(y坐标,单位px)
           y: 'bottom',
           itemWidth: 24,   // 设置图例图形的宽
           itemHeight: 18,  // 设置图例图形的高
           textStyle: {
             color: '#666'  // 图例文字颜色
           },
           // itemGap设置各个item之间的间隔,单位px,默认为10,横向布局时为水平间隔,纵向布局时为纵向间隔
           itemGap: 30,
           backgroundColor: '#fff6f2',  // 设置整个图例区域背景颜色
           data: ['部门基本经费', '校内专项', '财政专项', '追加项目']
         },
	   
	   tooltip: {
	     trigger: 'item',
	     formatter: "{a} <br/>{b} : {c} ({d}%)"
	   },
	   toolbox: {
		     show: true,
		     feature: {
		       saveAsImage: { show: true }
		     }
		   },
	   calculable: true,
	   series: [
	            {
	                name: '',
	                type: 'pie',   //饼状图
	                radius: '65%',   //大小
	                center: ['45%', '50%'],    //显示位置
	                data: [
	          	         { value: data.depSums==0?null:data.depSums, name: '部门基本经费' },
	          	         { value: data.collegeSums==0?null:data.collegeSums, name: '校内专项' },
	          	         { value: data.financeSums==0?null:data.financeSums, name: '财政专项' },
	          	         { value: data.addSums==0?null:data.addSums, name: '追加项目' }
	          	       ],
	          	     itemStyle: {
	                     normal: {
	                         label: {        //此处为指示线文字
	                             show: true,
	                             position: 'inner', //标签的位置
	                             textStyle: {
	                                 fontWeight: 200,
	                                 fontSize: 14    //文字的字体大小
	                             },
	                             formatter: ' {d}%'
	                         },
	                     }
	      		 }, 

	       },
	   ],
	 }
	 // 使用刚指定的配置项和数据显示图表。
	 myChart.setOption(option);
 }

  如下:

 

 

 

 

posted @ 2019-11-26 17:34  请叫我靓仔  阅读(732)  评论(0编辑  收藏  举报