zoukankan      html  css  js  c++  java
  • echart插件--柱状图正负柱使用配置

    一、bug记录:

    1.yAxis中 boundaryGap:false, //坐标轴两边留白策略这个参数设置false时  表示柱状图和坐标轴无缝衔接,会出现当鼠标放在最下面和最上面的两个柱状图时,柱状图隐藏的状态,不知道为啥,但是就是这个配置导致的,删掉或者true就好了。

    2.echart中toolTip是div   设置的层级z-index:9999999;所以自定义弹窗要记得设置z-index要大于toolTip的层级。

    二、使用过程中配置的使用记录:

    1.设置柱状图和y轴有一定的距离,如下图所示柱状图与Y轴距离太近

    解决:xAxis:{boundaryGap:true,}//是否与坐标轴之间留白  默认是true  当时解决多列title显示不全的时候设置了false  导致问题出现,改成false即可。

    下面X轴文字想要调整与y轴的距离:textStyle: {padding:[0,0,0,20]}  设置padding的值就可以了准寻上右下左的规律

    2,标签过多显示不全的问题:

    方法a:文字倾斜

     axisLabel: {//解决标签过多显示不全

    interval:0,
    rotate:30,
    }

    方法2:文字竖排显示
    axisLabel: {
    interval: 0,
    formatter:function(value)
    {
    return value.split("").join(" ");
    }
    },

    3.正负柱显示单位时要和x轴显示位置一致,如上图所示

    解决:

      xAxis: {
    					   type : 'category',
    					   name:"/月",
    					   nameLocation:"middle",
    					   nameGap:-10, //组合起来控制name的位置
    					   nameTextStyle:{
    						   //定位坐标轴名称位置,获取当前echart的div的宽度减去合理的值
    						   padding:[0,0,0,$("#year_revenue_echart").width()-80]  
    					   },
    					}
    

      

    相对完整的代码如下所示

    1.需求实现图:正负柱不同颜色显示,并且未到最大值的 用阴影补全显示。

    代码实现:

     <div class="echart">
    			<div id="totle_revenue_echart" style=" 100%;height:300px;"></div>
    			<div id="year_revenue_echart" style=" 100%;height:300px;"></div>
     </div>
    

      

    			   // 初始化echart
    			   var totle_revenue_echart = echarts.init(document.getElementById("totle_revenue_echart"));
    			   var option = {
    				   tooltip : {//悬浮窗设置
    					   trigger: 'axis',
    					   formatter:function(params) {//自定义文字提示
    						   return params[0].name+"<br />"+"总收益:"+params[0].value;
    						},
    					   axisPointer : {            // 坐标轴指示器,坐标轴触发有效
    						   type : 'shadow', // 默认为直线,可选为:'line' | 'shadow'
    						   lable:{
    							textShadowColor:"red",
    							"1px",
    						    height:"1px"
    						  },
    						  shadowStyle:{
    							  shadowOffsetX:0.5,
    							  shadowOffsetY:0.5,
    							  shadowBlur:0.5,
    							  opacity:0.5
    						  },
    						  
    					   }
    				   },
    				   grid: {//设置表格的位置
    					   top: "15px",
    					   left:"-10px",
    					   containLabel: true
    				   },
    				   xAxis: {
    					   show:false
    				   },
    				   yAxis: {//y轴线
    					   type : 'category',
    					   left:"0",
    					   axisLine: {
    						   show: true,
    						   onZero:true,
    						   lineStyle:{
    							   color:"#E9ECED",
    						   }
    					   },
    					   axisTick: {show: false},//刻度线
    					   axisLabel: {
    							show:true,
    						   // interval:0,//解决标签过多显示不全
    						   // rotate:30,
    						    align:'left',
    							margin:60,
    						    formatter:function (data,i) {//自定义设置y轴刻度名
    							   var arry =[100,30,200,-50,20];
    							   return data+" "+arry[i];
    						   }
    					   },
    					   data:["现金","股票","理财","两融","期权"],
    					   nameGap:30,
    					   inverse:false,//坐标轴名称是否反相显示
    					   boundaryGap:false, //坐标轴两边留白策略(解决坐标轴名字显示不全)
    					   axisPointer:{
    						   show:true,
    						   lable:{
    							   show:true,
    							   precision:2,
    							   formatter:function(data){
    								  console.log(data);
    							   }
    							 }  
    					   }
    				   },
    				   series : [
    					   {
    						   name:"直接",
    						   type:'bar',
    						   stack:"one",
    						   data:[9,8,-7,8,4],
    						   barWidth : "15px",//设置条宽度
    						   //配置样式
    						   itemStyle: {
    							   //通常情况下:
    							   normal: {
    								   // barBorderRadius: [0,4,4,0],
    								   color: function (data) {//设置正负颜色值
    									   return data.value>=0?"#E82724":"#00A212";
    								   }
    							   }
    						   }
    					   },
    						{
    						   name:"间接",
    						   type:'bar',
    						   stack:"one",
    						   data:[0,1,0,1,5],
    						   barWidth : "15px",//设置条宽度
    						   //配置样式
    						   itemStyle: {
    							   //通常情况下:
    							   normal: {
    								   // barBorderRadius: [0,4,4,0],
    								   color: "#E9ECED"
    							   }
    						   }
    					   },{
    						   name:"补充",
    						   type:'bar',
    						   stack:"one",
    						   data:[-7,-7,9,-7,-7],
    						   barWidth : "15px",//设置条宽度
    						   //配置样式
    						   itemStyle: {
    							   //通常情况下:
    							   normal: {
    								   // barBorderRadius: [0,4,4,0],
    								   color: "#E9ECED"
    							   }
    						   }
    					   },
    				   ]
    			   };
    			   totle_revenue_echart.setOption(option);//添加数据
    		   
    

     2.柱状图:柱状图显示,轴线刻度名称太长时也要显示,单位加上

    代码实现:

    //年度收益额走势
                   // 初始化echart
                   var year_revenue_echart = echarts.init(document.getElementById("year_revenue_echart"));
                  
                   option = {
                       tooltip : {
                           trigger: 'axis',
                           axisPointer : {            // 坐标轴指示器,坐标轴触发有效
                               type : 'shadow',        // 默认为直线,可选为:'line' | 'shadow'
                           },
                           formatter:function(params) {
                                console.log("params:",params[0]);
                                return params[0].name+"月<br />"+"总收益:"+params[0].value;
                            }
                        },
                       xAxis: {
                           type : 'category',
                           name:"/月",
                           // nameLocation:"end",
                           nameTextStyle:{
                               //定位坐标轴名称位置,和使用css中的padding功能一样
                               padding:[0,0,0,-10]   
                           },
                           axisLine: {show: false},
                           axisTick: {show: false},
                           // data: ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月","单位:元"],
                           data: [1,2,3,4,5,6,7,8,9,10,11,12],
                           boundaryGap:false,
                             axisLabel: {
                              show: true, //坐标轴的文字是否显示
                              // interval:0,  
                              // rotate:30 ,
                              textStyle: {
                                color: '#222', //坐标轴上的字体颜色
                                fontSize:'12' // 坐标轴字体大小
                              }
                            },
                            
                       },
                       grid: {//设置表格位置
                           top: "36px",
                           left:"10%",
                           containLabel: true
                       },
                       yAxis: {
                           name:"单位:元",
                           nameTextStyle:{
                               color:"black",
                               padding:[0,24,-10,0]                   
                           },
                           axisLine: {show: false},
                           axisTick: {show: false}
                       },
                       series: [{
                           name: '收益额',
                           type: 'bar',
                           data: [5000, 2772, 3006, 2210, 1770, 2420,4566, 2370, 3006, 2570, 1770, 2420],
                           barWidth : "10px",//设置条宽度
                           //配置样式
                           itemStyle: {
                               normal: { //通常情况下:
                                   barBorderRadius: [4, 4, 0, 0],//设置圆角
                                   color: function (data) {//设置正负颜色值
                                       return data.value>=0?"#E82724":"#00A212";
                                   }

                    // color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{//为柱状图设置渐变色
                        // offset: 0,
                        // color: "#FF6969" // 0% 处的颜色
                      // }, {
                        // offset: 1,
                        // color: "#FF3838" // 100% 处的颜色
                    // }], false)

    
                               }
                           }
                       }]
                   };
                   year_revenue_echart.setOption(option);//添加数据
                   // year_revenue_echart.showLoading();//数据加载的时候loading
               

  • 相关阅读:
    现在的技术QQ群为什么都变成了这样?效率高也是有弊端的?
    【php】php中mail()不可用,php中sendmail不能用的解决方法
    Cannot validate since no PHP executable is set. Use the setting 'php.validate.executablePath' to configure the PHP executable.无法使用PHP可执行的设置。设置php.validate。executablePath配置PHP可执行文件。
    20150907自动化测试之Appinum For Android(前篇)
    [摘]关于目标管理
    婚恋网站应该有视频功能
    GIS的双屏显示模式是一个实用的创新
    移动产品将越分越细
    基于开源GIS软件的电子政务地理信息应用解决方案
    手机长途话费应再降!
  • 原文地址:https://www.cnblogs.com/changyuqing/p/12118388.html
Copyright © 2011-2022 走看看