从入门到精通:Echarts 图表常用配置项全攻略

前言

相信不少同学在使用 Echarts 图表时避免不了要调整一些配置项,但对于很多初学者来说,面对 Echarts 众多的配置项可能会感到无从下手。别担心,本文将带大家全面了解 Echarts 图表常用的配置项,从基础到进阶,一步步揭开数据可视化的神秘面纱,让你轻松驾驭 Echarts



一、xAxis/yAxis 相关

1.1 修改x/y轴线及字体颜色

x/y 轴中定义 axisLine 配置项进行修改即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
    xAxis: {
        axisLine: {
            lineStyle: {
                color: "blue"
            }
        },
    },
    yAxis: {
        axisLine: {  
            lineStyle: {
                color: "blue",
            }
        },
    },
}

实现效果

在这里插入图片描述

1.2 x/y轴添加描述文字

x/y 轴加一个 name 属性即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
    yAxis: {
        name: "(万辆)",
    },
}

实现效果

在这里插入图片描述

1.3 去掉背景分隔线

y 轴中定义 splitLine 配置项,将 show 设置为 false 即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
    yAxis: {
        splitLine: {
            show: false
        },
    },
}

实现效果

在这里插入图片描述

1.4 设置x/y轴文字倾斜

x/y 轴中加上 axisLabel 配置项,加上 rotate 属性设置需要的角度值即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
    xAxis: {
        axisLabel: {
            rotate: 40,
        },  
    },
}

实现效果

在这里插入图片描述

1.5 x轴字数过多展示省略号

x 轴中加上 axisLabel 配置项,使用 formatter 方法格式化处理即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
    xAxis: {
		axisLabel: {
		  formatter: function (value) {
		    if (value.length > 4) {
 		     return `${value.slice(0, 4)}...`;
 		   }
 		   return value;
		  },
		},
    },
}

实现效果

在这里插入图片描述

1.6 数据量大时为x/y轴添加滚动条

option 中定义 dataZoom 配置项设置其中属性即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
    dataZoom: [
        {
            type: 'slider',//类型
            show: true,//显示
            yAxisIndex: [0],//使用y轴的index,默认值为0
            start: 0, //数据窗口范围的起始百分比
            end: 100//数据窗口范围的结束百分比
        },
    ],
 }

实现效果

在这里插入图片描述

1.7 隐藏x/y轴刻度线

x/y 轴中定义 axisTick 配置项设置 show 属性即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
	xAxis: {
    	axisTick: {
        	show: false,
    	},
	},
 }

实现效果

在这里插入图片描述

1.8 显示x/y坐标轴轴线

x/y 轴中定义 axisLine 配置项设置 show 属性即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
	yAxis: {
    	axisLine: {
        	show: false,
    	},
	},
 }

实现效果

在这里插入图片描述

1.9 y轴坐标不为小数

y 轴中定义 minInterval 配置项,将其设置为 1 即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
	yAxis: {
    	minInterval: 1, // 设置成1保证坐标轴分割刻度显示成整数。
	},
 }

实现效果

在这里插入图片描述

1.10 数据起点从x/y轴原点(0刻度)开始

x/y 轴中定义 boundaryGap 配置项,将其设置为 false 即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
	xAxis: {
  		type: "category",
  		data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
  		boundaryGap: false
	},
}

实现效果

在这里插入图片描述

1.11 x/y轴标记画线

series 轴中定义 markLine 配置项,定义画线的规则即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
  series: [
    {
      markLine: {
        data: [
          {
            xAxis: "Indonesia",
            lineStyle: { color: "blue", type: "solid" },
          },
          {
            xAxis: "China",
            lineStyle: { color: "blue", type: "solid" },
          },
        ],
        symbol: "none", // 标线两端的标记类型,可以是一个数组分别指定两端,也可以是单个统一指定
        label: { show: false },
      },
      data: [820, 932, 901, 934, 1290, 1330, 1320],
      type: "line",
    },
  ],
};

实现效果

在这里插入图片描述

1.12 y轴根据数据动态调整范围(不从 0 开始)

yAxis 轴中添加 minmax 配置项,定义规则从而更直观地展示数据的变化。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
  xAxis: {
    type: "category",
    data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
  },
  yAxis: {
    type: "value",
    min: (value) => Math.max(0, value.min - 5), // 最小值下探 5 个单位并确保最小值不小于 0
    max: (value) => value.max + 5, // 最大值上探 5 个单位
  },
  label: {
    show: true,
  },
  series: [
    {
      data: [83, 88, 89, 87, 90, 85, 95, 92],
      type: "bar",
    },
  ],
};

实现效果

在这里插入图片描述


二、series 相关

2.1 修改图形颜色

series 中定义 color 配置项设置颜色即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
	series: [
	  {
	    type: "bar",
	    color: ["rgb(40,135,193)"],
	  },
	  {
	    type: "bar",
	    color: ["rgb(255,230,15)"],
 	 },
	],
}	

实现效果

在这里插入图片描述

2.2 设置柱图的宽度

series 中定义 barWidth 配置项设置需要的值即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
    series: [
        {type: 'bar', barWidth: 10},
        {type: 'bar', barWidth: 18}
    ]
}

实现效果

在这里插入图片描述

2.3 饼图展示数值及占比

series 中定义 itemStyle 配置项,加上 itemStyle 属性,通过 normal 定义图形的默认状态即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
    series: [
        itemStyle: {
            normal: {
                label: {
                    show: true,
                    formatter: '{b} : {c} ({d}%)', //b:名称;c:值;d:所占百分比
                },
            }
        },
    ]
}

实现效果

在这里插入图片描述

2.4 饼图指示线显隐

series 中定义 labelLine 配置项设置 show 属性为 truefalse 即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
    series: [{
        labelLine: {
            show: false,
          },
    }]
}

实现效果

在这里插入图片描述

2.5 柱图顶端改成圆弧形

series 中定义 itemStyle 配置项设置 borderRadius 属性即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
    series: [{
    	type: "bar",
        itemStyle:{
        	barBorderRadius:[20,20,0,0] //从左至右依次为上左、上右、下右、下左
    	},
    }]
}

实现效果

在这里插入图片描述

2.6 调整饼图的位置

series 中定义 center 配置调整需要的值即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
    series: [{
        center: ["30%", "60%"],//水平 垂直
    }]
}

实现效果

在这里插入图片描述

2.7 饼图描述过长显示不全

series 中定义 label 配置项,使用 formatter 方法格式化处理即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
  series: [
    {
      label: {
        show: true,
          formatter(v) {
            let text = v.name;
            return text.length < 4 ? text : `${text.slice(0, 4)}\n${text.slice(4)}`;
          },
      },
    },
  ],
};

实现效果

在这里插入图片描述

2.8 柱状图数值显示在柱子上

series 中定义 label 配置项,将 show 属性设置为 true 即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
  series: [
    {
      label: {
        show: true,
        // formatter: '{b}\n{c}%', //如果需要单位加上这行代码即可   
      },
    },
  ],
};

实现效果

在这里插入图片描述

2.9 设置面积图渐变色

series 中定义 areaStyle 配置项,通过 color 属性设置颜色即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
  series: [
    {
      type: "line",
      smooth: true, //面积图是否改成弧形状
      lineStyle: {
        width: 2, //外边线宽度
        color: "rgb(124,255,255)", //外边线颜色
      },
      areaStyle: {
        //区域填充渐变颜色
        color: {
          type: "linear",
          x: 0,
          y: 0,
          x2: 0,
          y2: 1,
          colorStops: [
            {
              offset: 0,
              color: "rgba(124,255,255, 0.3)", //0%处颜色
            },
            {
              offset: 1,
              color: "rgba(44,56,74, 1)", //100%处颜色
            },
          ],
        },
      },
    },
  ],
};

实现效果

在这里插入图片描述

2.10 饼图数据太小不显示

series 中定义 minAngle 配置项,设置扇区最小角度即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
  series: [
    {
      minAngle: 5,
    },
  ],
};

实现效果

在这里插入图片描述

2.11 标签显示的位置

series 中定义 label 配置项,通过 position 属性设置标签位置即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
  series: [
    {
      markLine: {
        data: [
          {
            xAxis: "Indonesia",
            label: {
              position: "middle",
            },
          },
          {
            xAxis: "USABNMK",
            label: {
              position: "insideEndTop",
            },
          },
          {
            xAxis: "India",
            label: {
              position: "end",
            },
          },
          {
            xAxis: "China",
            label: {
              position: "insideStartTop",
            },
          },
        ],
      },
      data: [820, 932, 901, 934, 1290, 1330, 1320],
      type: "line",
    },
  ],
};

实现效果

在这里插入图片描述

2.12 控制图表数据的图形符号是否显示

series 中定义 showSymbol 配置项,通过 truefalse 控制即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
	series: [
        showSymbol: false,
     ],
};

实现效果

在这里插入图片描述

2.13 数据不堆叠

series 中定义 stack 配置项设置其属性值即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
  series: [
    {
      type: "line",
      stack: "Total", // 设置stack实现数据堆叠效果
      data: [120, 1032, 101, 134, 90, 230, 210],
    },
    {
      type: "line",
      stack: "Total", // 设置stack实现数据堆叠效果
      data: [220, 182, 191, 234, 290, 330, 310],
    },
  ],
};

实现效果

在这里插入图片描述


三、tooltip 相关

3.1 鼠标移入图表屏幕抖动

出现该问题是因为使用 tooltip 配置项后,鼠标悬浮事件频繁触发导致的,解决办法就是在 tooltip 中加上 transitionDuration 属性将值设置为 0 即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
    tooltip: {
         transitionDuration:0,//让提示框跟随鼠标提示
      },
}

实现效果

在这里插入图片描述

3.2 提示框浮层的背景颜色

option 中定义 tooltip 配置项,通过 backgroundColor 属性设置颜色即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
    tooltip: {
         backgroundColor: "black",
      },
}

实现效果

在这里插入图片描述

3.3 提示框浮层内边距

option 中定义 tooltip 配置项,通过 padding 属性边距即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
    tooltip: {
         padding: [
  			10, // 上
  			20, // 右
  			10, // 下
  			20, // 左
		],
      },
}

实现效果

在这里插入图片描述

3.4 手动触发提示框信息

  1. 定义 showTip 函数,接收 seriesIndexdataIndex 参数,用于指定要显示的提示框对应的系列和数据项索引,调用 myChart.dispatchAction 触发显示提示框;

  2. 图表加载后,用 setTimeout 立即显示首个系列 seriesIndex: 0 第二个数据项 dataIndex: 1,对应 Tue 的提示框;

  3. 监听鼠标移出图表事件 myChart.getZr().on("globalout", ...),移出时用 setTimeout 再调用 showTip 显示相同提示框。若对该配置项感兴趣『点此』获取更多详细内容。

核心代码

// 手动触发显示tooltip
const showTip = (seriesIndex, dataIndex) => {
  myChart.dispatchAction({
    type: "showTip",
    seriesIndex: seriesIndex,
    dataIndex: dataIndex,
  });
};
// 初始显示提示
setTimeout(() => {
  showTip(0, 1); // dataIndex对应 'Tue'
}, 0);
// 在鼠标移开时触发 showTip
myChart.getZr().on("globalout", () => {
  setTimeout(() => {
    showTip(0, 1); // 对应 'Tue' 对应的数据项索引
  }, 0);
});

完整代码

<template>
  <div class="chartBox">
    <div id="pillarsChart" :style="{ width: '100%', height: '100%' }"></div>
  </div>
</template>
<script>
export default {
  mounted() {
    this.pillarsEcharts();
  },
  methods: {
    pillarsEcharts() {
      var myChart = this.$echarts.init(document.getElementById("pillarsChart"));
      let option = {
        tooltip: {
          trigger: "axis",
        },
        xAxis: {
          type: "category",
          data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
        },
        yAxis: {
          type: "value",
        },
        series: [
          {
            data: [150, 230, 224, 218, 135, 147, 260],
            type: "line",
          },
        ],
      };
      // 手动触发显示tooltip
      const showTip = (seriesIndex, dataIndex) => {
        myChart.dispatchAction({
          type: "showTip",
          seriesIndex: seriesIndex,
          dataIndex: dataIndex,
        });
      };
      // 初始显示提示
      setTimeout(() => {
        showTip(0, 1); // dataIndex对应 'Tue'
      }, 0);
      // 在鼠标移开时触发 showTip
      myChart.getZr().on("globalout", () => {
        setTimeout(() => {
          showTip(0, 1); // 对应 'Tue' 对应的数据项索引
        }, 0);
      });
      myChart.setOption(option);
      window.addEventListener("resize", function() {
        myChart.resize();
      });
    },
  },
};
</script>

实现效果

在这里插入图片描述


四、title 相关

4.1 饼图中间添加文字描述

option 中定义 titlegraphic 配置项,调整需要展示的值即可。若对该配置项感兴趣『点此』获取更多详细内容。

title: {
  text: "80.5%", //展示值
  left: "center",
  top: "50%",
},
graphic: {
  type: "text",
  left: "center",
  top: "44%",
  style: {
    text: "处罚率", //展示值
  },
},

实现效果

在这里插入图片描述

4.2 图表无数据显示“暂无数据”字样

option 中定义 title 配置项,通过 show 属性判断是否显示标题,如果数组不为空,则 showfalse,表示不显示标题,反之显示标题。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
  title: {
    show: !dataList.length, // 如果 dataList 为空,则显示标题
    text: "暂无数据", // 显示的文本
    left: "center", // 水平方向居中
    top: "center", // 垂直方向居中
  },
}  

实现效果

在这里插入图片描述


五、legend 相关

5.1 修改图例文字颜色

legend 中定义 textStyle 配置项,加上 color 属性设置颜色即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
    legend: {
        textStyle: {
            color: 'white'
        },
    },
}

实现效果

在这里插入图片描述

5.2 修改图例的图标形状

legend 中定义 icon 配置项,选择符合项目需求的类型即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
    legend: {
       icon: "triangle", //控制形状,其中包括 circle,rect,roundRect,triangle,diamond,pin,arrow,none
    },
}

实现效果

在这里插入图片描述


六、grid 相关

6.1 调整图表与图例的间距

option 中定义 grid 配置项设置需要的值即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
	grid: {
		left: '5%',
		right: '6%',
		bottom: '3%',
        top: "20%"
	},
}

实现效果

在这里插入图片描述

6.2 调整图表网格的边框线宽

option 中定义 grid 配置项,通过 borderWidth 设置需要的值即可。若对该配置项感兴趣『点此』获取更多详细内容。

注意: 此配置项生效的前提是,设置了 show: true

let option = {
	grid: {
		show: true,
		borderWidth: 10,
	},
}

实现效果

在这里插入图片描述


七、其它

7.1 设置图表背景色

option 中定义 backgroundColor 配置项设置颜色即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
    backgroundColor: ["rgb(64,158,255)"],
}

实现效果

在这里插入图片描述

7.2 图表添加下载功能

option 中定义 toolbox 配置项即可。若对该配置项感兴趣『点此』获取更多详细内容。

let option = {
    toolbox: {
		feature: {
			saveAsImage: {
              title: "保存为图片", //标题可自行调整
              type: "png", //下载为png格式
            },
     	 },
    },
}

实现效果

在这里插入图片描述

7.3 图表切换全屏

option 中定义 toolbox 配置项即可。若对该配置项感兴趣『点此』获取更多详细内容。

  • 如果你用的是 svg 图片,复制 svg 标签中 d 的属性值(d="",引号中的内容拿出来)粘到 icon:"path://" 后面即可;
  • 如果你用的是外链图片,需要这样写: icon:'image://https://s1.ax1x.com/2022/04/19/L0GpM4.png' ,相当于是 image:// + “外链地址”。
let option = {
	 toolbox: {
          show: true,
          feature: {
            myFull: {
              show: true,
              title: "全屏查看",
              icon:
                "path://M708.2 792.2l-97.5-97.7c-11.6-11.6-11.6-30.3 0-41.9l41.9-41.9c11.6-11.6 30.3-11.6 41.9 0l97.6 97.6 85.3-85.3c11.6-11.6 30.3-11.6 41.9-0.1 5.6 5.6 8.7 13.1 8.7 21v254.4c0 16.4-13.3 29.6-29.6 29.6H643.9c-16.4 0-29.6-13.3-29.6-29.6 0-7.8 3.1-15.4 8.6-20.9l85.3-85.3v0.1zM234 708.1l97.5-97.6c11.6-11.6 30.3-11.6 41.9 0l41.9 41.9c11.6 11.6 11.6 30.3 0 41.9l-97.6 97.6 85.3 85.3c11.6 11.6 11.5 30.4-0.1 41.9-5.6 5.5-13.1 8.6-20.9 8.6H127.7c-16.4 0-29.6-13.3-29.6-29.6V643.7c0-16.4 13.3-29.6 29.6-29.6 7.9 0 15.4 3.1 21 8.7l85.3 85.3zM792 318l-97.6 97.6c-11.6 11.6-30.3 11.6-41.9 0l-41.8-41.8c-11.6-11.6-11.6-30.3 0-41.9l97.6-97.6L623 149c-11.6-11.6-11.5-30.4 0.1-41.9 5.6-5.5 13.1-8.6 20.9-8.6h254.4c16.4 0 29.6 13.3 29.6 29.6v254.4c0 16.4-13.3 29.6-29.6 29.6-7.9 0-15.4-3.1-21-8.7L792 318z m-474.3-83.9l97.6 97.6c11.6 11.6 11.6 30.3 0 41.9l-42 42c-11.6 11.6-30.3 11.6-41.9 0L233.8 318l-85.3 85.3c-11.6 11.6-30.4 11.5-41.9-0.1-5.6-5.6-8.7-13.1-8.6-21V127.8c0-16.4 13.3-29.6 29.6-29.6H382c16.4 0 29.6 13.3 29.6 29.6 0 7.9-3.1 15.4-8.7 21l-85.2 85.3z",
              onclick: () => {
                let element = document.getElementById("straight");
                // 浏览器兼容
                if (element.requestFullScreen) {
                  element.requestFullScreen();
                } else if (element.msRequestFullscreen) {
                  element.msRequestFullScreen();
                } else if (element.webkitRequestFullScreen) {
                  element.webkitRequestFullScreen();
                } else if (element.mozRequestFullScreen) {
                  element.mozRequestFullScreen();
                }
                // 退出全屏
                if (element.requestFullScreen) {
                  document.exitFullscreen();
                } else if (element.msRequestFullScreen) {
                  document.msExitFullscreen();
                } else if (element.webkitRequestFullScreen) {
                  document.webkitCancelFullScreen();
                } else if (element.mozRequestFullScreen) {
                  document.mozCancelFullScreen();
                }
              },
            },
          },
	},
}

实现效果

在这里插入图片描述

7.4 图表宽高自适应

主要是通过 resize() 方法实现,核心原理是重新获取容器的尺寸信息,然后根据新的尺寸重新计算图表的布局和绘制参数,最后使用新的参数重新渲染整个图表。

<div id="columnarChart" :style="{ width: '100%', height: '100%' }"></div>
radarEcharts() {
  var myChart = this.$echarts.init(document.getElementById("columnarChart"));
  let option = {};
  myChart.setOption(option);
  window.addEventListener("resize", function() {
    myChart.resize();
  });
},

实现效果

在这里插入图片描述


相关推荐

玩转数据可视化,从入门到精通 Echarts
解决echarts报错Cannot read properties of null (reading ‘getAttribute‘)
解决element标签组件切换echarts图表宽高丢失问题
数据的跃动之美:探索ECharts动态排序柱状图的魔力
一文带你快速上手Highcharts框架

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水星记_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值