echarts图表的图例颜色和图表中的条柱颜色不对应

出现的问题echarts的柱状图图例颜色和下面的矩形颜色不对应,截图如下:

问题原因:系统默认就是legend的颜色和条形的颜色一样的,不过前提条件是你的series 数据的name 属性和legend的 data数组一一对应

修改前的代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="zh-CN">
    <head>
    
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">   <!-- 在IE运行最新的渲染模式 -->
        <meta name="viewport" content="width=device-width, initial-scale=1">    <!-- 初始化移动浏览显示  -->
        <meta name="Author" content="Dreamer-1.">        
        
     <script src="js/jquery.min.js"></script>
    <script  src="js/echarts-all.js"></script>
    <!-- <script  src="js/echarts.min.js"></script> -->
    <title>柱状图示例</title>
    </head>

    <body>
        <!-- 显示Echarts图表 -->
        <div style="height:410px;min-height:100px;margin:0 auto;" id="main"></div>                        
  
        <script type="text/javascript">
        var data = {
                key1: "value1",
                key2: "value2",
                count: 3,
                person: [ //数组结构JSON对象,可以嵌套使用
                            {
                                id: 1,
                                name: "张三",
                                money:9
                            },
                            {
                                id: 2,
                                name: "李四",
                                money:19
                            },
                            {
                                id: 3,
                                name: "王五",
                                money:29
                            },
                            {
                                id: 4,
                                name: "赵柳",
                                money:39
                            },
                            {
                                id: 5,
                                name: "赵柳",
                                money:49
                            },
                            {
                                id: 6,
                                name: "赵柳",
                                money:59
                            }
                       ],
                object: { //对象结构JSON对象
                    id: 1,
                    msg: "对象里的对象"    
                },
                currentDateStr:new Date()
            };
        
        /*
        *下面注释两行是前面出问题的代码
        */
        //obj = $.parseJSON(data);
        //var person = obj.person;
        var person = data.person;
        var money = new Array();      //钱数
        
        var date = data.currentDateStr;                     //时间
    	var year = date.getFullYear();
    	var month = date.getMonth()+1;//js中是从0开始所以要加1
    	var day = date.getDate();
        for (var i = 0; i < person.length; i++) {
        	money[i] = person[i].money;
        }
        
        var barText = "初始化完毕";
        var barSubtext = year+ '年' + month + '月' + day +'日';
        var xData = ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"];
        var legendValue = ['销量','销量2'];
        var seriesName = '销量';
        
        var worldMapContainer = document.getElementById('main')
        var resizeWorldMapContainer = function () {
            worldMapContainer.style.width = window.innerWidth+'px';
            worldMapContainer.style.height = window.innerHeight+'px';
        };
        
      	//设置容器高宽
        resizeWorldMapContainer();
        
        	
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(worldMapContainer);
        

        var option = {
        		//color: ['#ddffee', '#00ffff'],
                title : {
                    text : barText,
                    subtext: barSubtext
                },
                tooltip : {},
                legend : {
                    data : legendValue
                },
                xAxis : {
                    data : xData,
                    type : 'category'
                },
                yAxis : {},

                series : [ {
                    name : seriesName,
                    type : 'bar',
                    data : money ,           //该位置放的是一个数组
                    barWidth: 30,
                     itemStyle:{
                        normal:{
                            color:'#ddffee'
                        }
                    }, 
                    label:{
        		    	normal:{
        	   			 show:true,
        	   			 position:'top'
        		    	}
        		    },
                } ,
                {
                    name : seriesName,
                    type : 'bar',
                    data : money  ,          //该位置放的是一个数组
                    barWidth: 30,
                    itemStyle:{
                        normal:{
                            color:'#00ffff'
                        }
                    }, 
                    label:{
        		    	normal:{
        	   			 show:true,
        	   			 position:'top'
        		    	}
        		    },
                }]
            };
        
    myChart.setOption(option);    //载入图表
  //用于使chart自适应高度和宽度
    window.onresize = function () {
        //重置容器高宽
        resizeWorldMapContainer();
        myChart.resize();
    };   
    </script>
        
    </body>
</html>

修改后的代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="zh-CN">
    <head>
    
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">   <!-- 在IE运行最新的渲染模式 -->
        <meta name="viewport" content="width=device-width, initial-scale=1">    <!-- 初始化移动浏览显示  -->
        <meta name="Author" content="Dreamer-1.">        
        
     <script src="js/jquery.min.js"></script>
    <script  src="js/echarts-all.js"></script>
    <!-- <script  src="js/echarts.min.js"></script> -->
    <title>柱状图示例</title>
    </head>

    <body>
        <!-- 显示Echarts图表 -->
        <div style="height:410px;min-height:100px;margin:0 auto;" id="main"></div>                        
                    
        <script type="text/javascript">
        var data = {
                key1: "value1",
                key2: "value2",
                count: 3,
                person: [ //数组结构JSON对象,可以嵌套使用
                            {
                                id: 1,
                                name: "张三",
                                money:9
                            },
                            {
                                id: 2,
                                name: "李四",
                                money:19
                            },
                            {
                                id: 3,
                                name: "王五",
                                money:29
                            },
                            {
                                id: 4,
                                name: "赵柳",
                                money:39
                            },
                            {
                                id: 5,
                                name: "赵柳",
                                money:49
                            },
                            {
                                id: 6,
                                name: "赵柳",
                                money:59
                            }
                       ],
                object: { //对象结构JSON对象
                    id: 1,
                    msg: "对象里的对象"    
                },
                currentDateStr:new Date()
            };
        
        /*
        *下面注释两行是前面出问题的代码
        */
        //obj = $.parseJSON(data);
        //var person = obj.person;
        var person = data.person;
        var money = new Array();      //钱数
        
        var date = data.currentDateStr;                     //时间
    	var year = date.getFullYear();
    	var month = date.getMonth()+1;//js中是从0开始所以要加1
    	var day = date.getDate();
        for (var i = 0; i < person.length; i++) {
        	money[i] = person[i].money;
        }
        
        var barText = "初始化完毕";
        var barSubtext = year+ '年' + month + '月' + day +'日';
        var xData = ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"];
        var legendValue = ['销量','销量2'];
        var seriesName1 = '销量';
        var seriesName2 = '销量2';
        
        var worldMapContainer = document.getElementById('main')
        var resizeWorldMapContainer = function () {
            worldMapContainer.style.width = window.innerWidth+'px';
            worldMapContainer.style.height = window.innerHeight+'px';
        };
        
      	//设置容器高宽
        resizeWorldMapContainer();
        
        	
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(worldMapContainer);
        

        var option = {
        		//color: ['#ddffee', '#00ffff'],
                title : {
                    text : barText,
                    subtext: barSubtext
                },
                tooltip : {},
                legend : {
                    data : legendValue
                },
                xAxis : {
                    data : xData,
                    type : 'category'
                },
                yAxis : {},

                series : [ {
                    name : seriesName1,
                    type : 'bar',
                    data : money ,           //该位置放的是一个数组
                    barWidth: 30,
                    itemStyle:{
                        normal:{
                            color:'#ddffee'
                        }
                    }, 
                    label:{
        		    	normal:{
        	   			 show:true,
        	   			 position:'top'
        		    	}
        		    },
                } ,
                {
                    name : seriesName2,
                    type : 'bar',
                    data : money  ,          //该位置放的是一个数组
                    barWidth: 30,
                    itemStyle:{
                        normal:{
                            color:'#00ffff'
                        }
                    }, 
                    label:{
        		    	normal:{
        	   			 show:true,
        	   			 position:'top'
        		    	}
        		    },
                }]
            };
        
    myChart.setOption(option);    //载入图表
  //用于使chart自适应高度和宽度
    window.onresize = function () {
        //重置容器高宽
        resizeWorldMapContainer();
        myChart.resize();
    };   
    </script>
        
    </body>
</html>

修改前后的差别:

修改后的效果图如下:

猜你喜欢

转载自blog.csdn.net/Sun_of_Rainy/article/details/85054020
今日推荐