位置: IT常识 - 正文

Echarts 饼图基本用法(echarts饼图参数配置)

编辑:rootadmin
Echarts 饼图基本用法

目录

Echarts 饼图基本用法

引入Echarts

创建饼图

拓展

引入Echarts

推荐整理分享Echarts 饼图基本用法(echarts饼图参数配置),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:echarts画饼图,echarts的饼图,echarts饼图动画效果,echarts饼状图代码,echart 饼状图,echarts饼图formatter,echart 饼状图,echarts饼图formatter,内容如对您有帮助,希望把文章链接给更多的朋友!

所介绍的两种方法,适用于使用Echarts的每种图。

在一般的html里引入Echarts,需要下载echarts.js文件。在 https://www.jsdelivr.com/package/npm/echarts 选择 dist/echarts.js,点击并保存为 echarts.js 文件。再到html文件中引入该文件,如下所示。

<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <!-- 引入刚刚下载的 ECharts 文件 --> <script src="echarts.js"></script> </head></html>

在使用了vue框架的项目中引入Echarts。

Echarts 饼图基本用法(echarts饼图参数配置)

直接使用命令安装Echarts资源包。(要连网时才能正常安装)

npm install echarts --save创建饼图

从官网找到适合自己项目的图形。下图是我选择的图形

官网上的代码如下。官网上每个图形的“配套”代码只展示了配置图形的对象。(对使用Echarts的新手不太友好)当需要自定义图形的一些细节时,就需要修改一些内容。

option = { title: { text: 'Referer of a Website', subtext: 'Fake Data', left: 'center' }, tooltip: { trigger: 'item' }, legend: { orient: 'vertical', left: 'left' }, series: [ { name: 'Access From', type: 'pie', radius: '50%', data: [ { value: 1048, name: 'Search Engine' }, { value: 735, name: 'Direct' }, { value: 580, name: 'Email' }, { value: 484, name: 'Union Ads' }, { value: 300, name: 'Video Ads' } ], emphasis: { itemStyle: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ]};

下面展示我项目中最终饼图的样子,并对饼图的一些配置进行说明。

<template> <div class="pie-container"> <div class="pie" ref="pieBox" style="height: 100%"></div> <!-- <div class="colors"></div> --> </div></template><script>import * as echarts from "echarts";// import { debounce } from "@/util/debounce.js";export default { mounted() { this.initPieData(); window.addEventListener("resize", this.reload); //监听浏览器视口变化,并重绘图形 }, destroyed() { window.removeEventListener("resize", this.reload); }, data() { return { //接口返回的数据格式 echartsData: { pieArr: [ { color: "#cc80cc", name: "儿童读物", value: 0, code: "3", softFiled: 1, }, { color: "#8BA1AE", name: "言情小说", value: 0, code: "1", softFiled: 1, }, { color: "#99aa00", name: "热门推荐", value: 1, code: "0", softFiled: 3, }, { color: "#00aaff", name: "悬疑", value: 1, code: "6", softFiled: 5, }, { color: "#33aa33", name: "教辅资料", value: 1, code: "7", softFiled: 7, }, { color: "#66d5ff", name: "名著", value: 5, code: "00", softFiled: 11, }, { color: "#f0dcfc", name: "工科学习资料", value: 1, code: "11", softFiled: 11, }, { color: "#968FD3", name: "书画集", value: 0, code: "30", softFiled: 11, }, ], headMsg: { totalNum: 9, onDuty: 5, firstDeptName: "名著占比", offDuty: 4, dutyPercent: "0.55555556", }, msg: "success", }, pieChart: null, }; }, methods: { // 重新刷新界面的功能 // reload: debounce(function () { // this.disposeCharts(); // this.initPieData(); // // location.reload(); // }, 300), /** * 销毁饼图 */ disposeCharts() { echarts.dispose(this.pieChart); }, //得到饼图的数据格式(Echarts规定的格式) { value: 12, name: '在线', itemStyle: { color: '#005eff' } }, getPieData(pieArr) { const pieData = pieArr.map((item) => { return { value: `${item.value}`, name: `${item.name}:${item.value}本`, //name 为每一项的标题,影响鼠标浮动和图例 itemStyle: { color: `${item.color}` }, }; }); return pieData; }, //如果需要修改图例,可以得到图例的数据格式,在放到配置项中 // getLegendData(Arr) { // const legendData = Arr.map((item) => { // return { // name: `${item.name} ${item.value}本`, // icon: "circle", // }; // }); // return legendData; // }, //初始化饼图 initPieData() { this.pieChart = echarts.init(this.$refs.pieBox); //选中dom const dutyPercent = ((+this.echartsData.headMsg.dutyPercent).toFixed(4) * 100).toFixed(2) + "%"; //因为js本身的精度问题所以乘了一百之后又保留了两位小数 也可以用bigInt解决 let onDutyNum = this.echartsData.headMsg.onDuty; let totalNum = this.echartsData.headMsg.totalNum; let pieData = this.getPieData(this.echartsData.pieArr); //获取饼图的数据格式 let option = { backgroundColor: "#fff", //设置饼图的画布的背景色 //修改标题 title: { top: 10, //类似于定位中的top text: "名著占总售书籍的比例", subtext: `总售书:${totalNum}本 名著:(${onDutyNum}本,${dutyPercent})`, //f副标题 left: "center", itemGap: 12, //主标题与副标题的间隙 textStyle: { fontSize: 28, }, subtextStyle: { fontSize: 16, }, }, //修改鼠标悬浮到饼图上的文字 tooltip: { trigger: "item", formatter: "{a}<br/>{b}({d}%)", }, // 调整图例位置 legend: { top: 360, orient: "vertical", x: "center", y: "bottom", width: "100", padding: [0, 0, 5, 0], //上右下左 itemWidth: 15, icon: "circle", itemGap: 20, textStyle: { //图例字体样式 fontSize: 16, fontFamily: "微软雅黑", }, }, series: [ { top: "-40%", name: "名著占总售书籍的比例", type: "pie", radius: "60%", avoidLabelOverlap: false, data: pieData, center: ["50%", "50%"], //饼图上的指示线 label: { normal: { position: "inner", show: false, }, }, //鼠标移动上去后饼图区域的样式改变 emphasis: { itemStyle: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: "rgba(0, 0, 0, 0.5)", }, }, }, ], }; //生成饼图 this.pieChart.setOption(option); }, },};</script><style lang="scss" scoped>.pie-container { border: 1px #ccc solid; height: 700px; width: 400px; margin-left: 30px;}</style>拓展

关于鼠标悬浮到饼图上的提示字样修改。可以学习这个博客

echarts a,b,c,d 分别表示跟用法_wu_223的博客-CSDN博客_echarts {b}

本文链接地址:https://www.jiuchutong.com/zhishi/297602.html 转载请保留说明!

上一篇:Web Spider Fiddler - JS Hook 基本使用

下一篇:梯度下降算法(Gradient descent)(梯度下降算法的正确顺序是)

  • 销售停滞不前?六个方法改善(销售停滞不前,申请停止销售报告怎么写)

  • qq如何设置不显示名片赞(qq如何设置不显示小世界)

  • 快手推广保证金可以不交吗(快手推广保证金和店铺保证金区别)

  • 焦距12mm能看多远(焦距12mm和16mm)

  • 苹果怎么解除过热保护(ios怎么解除)

  • 华为勿扰模式能打进电话吗(华为勿扰模式能收到短信吗)

  • 微信充话费是空号会退钱吗(微信充话费充成空号了怎么办)

  • 手机账号密码在哪里看(vivo账户密码忘了怎么解开手机)

  • 能不能知道qq群是谁举报的(能不能知道qq群在哪里)

  • 对一台计算机来说什么的档次最重要(对一台计算机来说)

  • 名片分享能知道谁分享的吗(名片分享过一次就不能分享了吗)

  • 华为mate30怎么删除软件(华为mate30怎么删除门禁卡)

  • 电脑应用变大怎么变小(电脑应用变大怎么改小)

  • 苹果4和苹果4s外观差别(苹果4和苹果4s外观区别)

  • 华为笔记本怎么下载软件(华为笔记本怎么录屏)

  • iphonex有密码解锁吗(iphonex怎么解密码锁)

  • airpods能关机吗(airpods2能关机吗)

  • 请教一下什么叫快闪(什么是!)

  • 网易考拉怎么修改个人资料(网易考拉怎么切换账号)

  • 苹果x应用商店怎么打不开(苹果应用商店在哪)

  • qq拔河怎么玩(qq拔河彩蛋是人机吗)

  • hdfs工作原理(hdfs工作原理图)

  • vivox23支持红外功能吗(vivox23支持红外遥控吗)

  • 苹果屏幕原彩是什么(苹果屏幕原彩是什么怎么打开)

  • 电脑开机无限循环重启(电脑开机无限循环重启键盘不亮)

  • 前端大屏适配几种方案(前端大屏适配几寸显示器)

  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设 电脑维修 湖南楚通运网络