首页IT科技echarts饼图位置调整(vue echarts饼图环形 (随着legend动态显示数据总数))

echarts饼图位置调整(vue echarts饼图环形 (随着legend动态显示数据总数))

时间2025-06-18 12:01:30分类IT科技浏览5198
导读:目录...

目录

1.安装echarts

2.引入echarts

3.创建要放入echarts实例的一个盒子

 4.创建echarts实例

5.随着legend动态显示数据总数

效果视频

1.安装echarts

npm install echarts --save

2.引入echarts

在 当前vue文件中引入 echarts 

如下图所示:

3.创建要放入echarts实例的一个盒子

切记:必须给echarts实例盒子宽高

如下图所示:

 4.创建echarts实例

这里就此案例对echarts环形图进行了简单的设置和讲解

<template> <div id="main"> </div> </template> <script> import * as echarts from echarts export default { data() { return { echartsSumnum: 0,//数据总数 option: { // 设置标题 title: { text: ,//主标题 (主标题里面来动态显示当前数据总数) subtext: 总数,//副标题 x: center,//标题x轴居中(也可以是: left || center || right || 百分比:xx% || xx(默认单位px) ) y: center,//标题y轴居中(也可以是: top || center || bottom || 百分比:xx% || xx(默认单位px) ) itemGap: -5,//主标题和副标题之间的距离(默认为 0) textStyle: {//设置主标题样式 fontSize: 40, color: #666, backroung: blue }, subtextStyle: {//设置副标题样式 fontSize: 20, color: "#666" } }, // 鼠标滑过显示悬浮框 tooltip: { // show:true,//鼠标滑过是否显示悬浮框 (默认为true开启 false为关闭) //设置悬浮框内展示的内容 // a:series.name b:series.data.name c:series.data.value d:当前数据所占数据的百分比 formatter: {a}</br>{b}: {c} </br>所占比例: {d}%, }, // 设置图例 legend: { orient: vertical,//图例的排列方式 (默认 horizontal:水平方向排列 vertical:垂直方向排列) right: right,//图标在前文字在后              ,图例靠右居中显示 (也可以是: left || center || right || 百分比:xx% || xx(默认单位px) ) y: center,//图例y轴居中(也可以是: top || center || bottom || 百分比:xx% || xx(默认单位px) ) itemStyle: {},//设置图例前面的图标样式 textStyle: {//设置图例文字样式 fontSize: 14 } }, // 设置主体 series: [ { name: hello world, //echarts图名字 type: pie,//echarts 类型 minAngle: 5,//echarts数据value为0时默认为value为5 radius: [30%, 40%],//设置环形图 ( radius: [设置内圆大小, 设置外圆大小] 不折设置默认为实心圆饼图) center: [50%, 50%],//设置饼图位置 (center:[x轴位置,y轴位置]不设置默认在中间) data: [ //echarts数据 { value: 80, name: ONE }, { value: 50, name: TWO }, { value: 120, name: THREE }, { value: 210, name: FOUR }, { value: 0, name: FIVE } ], }, ] } } }, mounted() { // 初始化数据的总数 this.option.series[0].data.forEach(v => { this.echartsSumnum += v.value }) this.option.title.text = this.echartsSumnum var chartDom = document.getElementById(main); var myChart = echarts.init(chartDom); myChart.setOption(this.option); } } </script> <style scoped lang="less"> #main { width: 800px; height: 500px; } </style>

5.随着legend动态显示数据总数

下面所示代码为全部代码

<template> <div id="main"> </div> </template> <script> import * as echarts from echarts export default { data() { return { echartsSumnum: 0,//数据总数 option: { // 设置标题 title: { text: ,//主标题 (主标题里面来动态显示当前数据总数) subtext: 总数,//副标题 x: center,//标题x轴居中(也可以是: left || center || right || 百分比:xx% || xx(默认单位px) ) y: center,//标题y轴居中(也可以是: top || center || bottom || 百分比:xx% || xx(默认单位px) ) itemGap: -5,//主标题和副标题之间的距离(默认为 0) textStyle: {//设置主标题样式 fontSize: 40, color: #666, backroung: blue }, subtextStyle: {//设置副标题样式 fontSize: 20, color: "#666" } }, // 鼠标滑过显示悬浮框 tooltip: { // show:true,//鼠标滑过是否显示悬浮框 (默认为true开启 false为关闭) //设置悬浮框内展示的内容 // a:series.name b:series.data.name c:series.data.value d:当前数据所占数据的百分比 formatter: {a}</br>{b}: {c} </br>所占比例: {d}%, }, // 设置图例 legend: { orient: vertical,//图例的排列方式 (默认 horizontal:水平方向排列 vertical:垂直方向排列) right: right,//图标在前文字在后                    ,图例靠右居中显示 (也可以是: left || center || right || 百分比:xx% || xx(默认单位px) ) y: center,//图例y轴居中(也可以是: top || center || bottom || 百分比:xx% || xx(默认单位px) ) itemStyle: {},//设置图例前面的图标样式 textStyle: {//设置图例文字样式 fontSize: 14 } }, // 设置主体 series: [ { name: hello world, //echarts图名字 type: pie,//echarts 类型 minAngle: 5,//echarts数据value为0时默认为value为5 radius: [30%, 40%],//设置环形图 ( radius: [设置内圆大小, 设置外圆大小] 不折设置默认为实心圆饼图) center: [50%, 50%],//设置饼图位置 (center:[x轴位置,y轴位置]不设置默认在中间) data: [ //echarts数据 { value: 80, name: ONE }, { value: 50, name: TWO }, { value: 120, name: THREE }, { value: 210, name: FOUR }, { value: 0, name: FIVE } ], }, ] } } }, mounted() { // 初始化数据的总数 this.option.series[0].data.forEach(v => { this.echartsSumnum += v.value }) this.option.title.text = this.echartsSumnum var chartDom = document.getElementById(main); var myChart = echarts.init(chartDom); let echartsArr = []; //点击图例后所剩的数据名 let echartsNum = 0;//点击图例后所剩的数据的总和 // 利用echarts自带的legendselectchanged方法获取点击后的数据(但是这里只能获取到名字) myChart.on(legendselectchanged, (params) => { echartsArr = [];//将点击后的数组设为空(每点击一次就重新判断添加) // 循环点击图例后获取到的名字 for (let key in params.selected) { // 判断值是否为true 将值为true的名字push到echartsArr数组当中保留起来 if (params.selected[key]) { echartsArr.push(key) } } echartsNum = 0; //将总数的值设为0(每点击一次就重新计算) // 循环判断数据的全部数据里的name值是否与我们点击图例后所剩数据的数组相等 // 相等的话就将其value值进行相加得出点击图例后所剩数据的总数 this.option.series[0].data.forEach(item => { echartsArr.forEach(v => { if (item.name === v) { echartsNum += item.value } }) }) this.option.title.text = echartsNum //最后将其赋值给主标题即可 this.$nextTick(() => { myChart.setOption(this.option); }) }) myChart.setOption(this.option); } } </script> <style scoped lang="less"> #main { width: 800px; height: 500px; } </style>

有不足的地方还望各位大佬指点一二

声明:本站所有文章      ,如无特殊说明或标注              ,均为本站原创发布             。任何个人或组织                     ,在未征得本站同意时      ,禁止复制             、盗用                    、采集       、发布本站内容到任何网站       、书籍等各类媒体平台                    。如若本站内容侵犯了原著者的合法权益       ,可联系我们进行处理       。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
网络赚钱的教程网络赚钱手段有哪些-分享几个比较靠谱的网络赚钱项目方法 前端无感刷新token(记录–关于无感刷新Token,我是这样子做的)