echerts饼图分割操作

在饼图制作中遇到了一个难点就是饼图中间是分散的   试了很多方法,最后选择了给每个值中间再加一节的处理方式,并把颜色设置为透明就能达到相同效果。

处理后的样式:

代码:

      let list = this.data.list;/饼图内部展示数据// let _this = this;//存储当前thislet total = Math.max(...list.map(item => item.value));let gap = total * (12 / 360);//通过计算得出间隔值this.myChart1 = echarts.init(this.$refs["chart-pie"]);let data = [];for (var i = 0; i < list.length; i++) {data.push({value: list[i].value,name: list[i].name,itemStyle: {normal: {borderColor: this.color[i],color: this.color[i]}}},{value: gap,//间隔值name: "",itemStyle: {normal: {label: {show: false},labelLine: {show: false},color: "rgba(0, 0, 0, 0)",borderColor: "rgba(0, 0, 0, 0)",//间隔颜色设置为透明borderWidth: 0}},emphasis: {label: {show: false}}});}

完整代码:

<template><!-- 柱状图 --><div class="ticket public-row"><div class="echarts-left fl"><div class="mychart" :class="{ 'fix-position': data.list.length > 5 }" :id="chartId" ref="chart-pie"></div></div><div class="text-right fl"><divclass="text-right-item c-p":class="{ acitve: active === index }"@click="changeText(index)"v-for="(item, index) in data.list":key="index"><div class="text-color fl" :class="'color' + index"></div><div class="text-right-item-title fl">{{ item.name }}</div><div class="text-right-item-num fl">{{ item.value }}</div><div class="text-border fl"></div><div class="text-right-item-type">{{ item.mixins }}</div></div></div></div><!-- <p v-else class="m-t20 m-l20">暂无数据</p> -->
</template><script>
let dashedPic = require("./img/huanxingtu.png");
export default {name: "base-pie",components: {},props: {chartId: {type: String,default: "chartId2"},data: {type: Object,default() {return {data: [{ name: "OTA", value: 3124, mixins: "28%" },{ name: "窗口", value: 3124, mixins: "28%" },{ name: "小程序", value: 3124, mixins: "28%" },{ name: "旅行社", value: 3124, mixins: "28%" }],number: 9000,name: "总票数",unit: "张"};}},color: {type: Array,default() {return ["rgba(47, 107, 255, 1)","rgba(34, 220, 213, 1)","#FC8452","#9A60B4","#73C0DE","#3CA272","#ea7ccc"];}},//显示样式typeId: {type: Number,default: 0}},data() {return {myChart1: "",active: 0};},created() {},mounted() {this.$nextTick(() => {// setTimeout(() => {// debugger;this.init();// }, 500);});},watch: {data: {handler() {this.$nextTick(() => {this.init();});},deep: true}},beforeDestroy() {},computed: {},methods: {/*** @description:选中切换* @param {*} item* @Description:* @return {*}*/changeText(item) {this.active = item;},/*** @description:init 初始化* @param {*} item* @Description:* @return {*}*/init() {if (this.myChart1) this.myChart1.dispose();if (!this.data) return false;let list = this.data.list;console.log(list);// let _this = this;let total = Math.max(...list.map(item => item.value));let gap = total * (12 / 360);this.myChart1 = echarts.init(this.$refs["chart-pie"]);let data = [];for (var i = 0; i < list.length; i++) {data.push({value: list[i].value,name: list[i].name,itemStyle: {normal: {borderColor: this.color[i],color: this.color[i]}}},{value: gap,name: "",itemStyle: {normal: {label: {show: false},labelLine: {show: false},color: "rgba(0, 0, 0, 0)",borderColor: "rgba(0, 0, 0, 0)",borderWidth: 0}},emphasis: {label: {show: false}}});}let option = {backgroundColor: "",title: [{text: this.data.number,top: "35%",left: "center",textStyle: {fontSize: 26,fontFamily: "DIN",color: "#ffffff"},subtext: this.data.name,// subtext: "总票数",subtextStyle: {fontSize: 14,color: "rgba(223, 245, 252, 1)"}},{text: this.data.unit,top: "38%",textAlign: "center",left: "74%",textStyle: {color: "rgba(255, 255, 255, 1)",fontSize: 18,fontWeight: "400"}}],tooltip: {trigger: "axis",backgroundColor: "rgba(9, 30, 60, 0.6)",extraCssText: "box-shadow: 0 0 8px rgba(0, 128, 255, 0.27) inset;",borderWidth: 0,confine: false,appendToBody: true,textStyle: {color: "#fff",fontSize: 10}},legend: null,// 可动态生成颜色集合// color: this.color,series: [{name: "项目规模占比",type: "pie",radius: ["80%", "98%"],label: {show: false},data: data}],graphic: {elements: [{itemStyle: {opacity: 0.8 // 设置整个系列的数据点的透明度},type: "image",style: {image: dashedPic,width: 154,height: 154,opacity: 0.6},left: "center",top: "center"}]}};this.myChart1.setOption(option);}}
};
</script><style lang="less" scoped>
.mychart {width: 100%;height: 100%;
}
.ticket {overflow: hidden;font-size: 16px;display: flex;justify-content: center;align-items: center;.echarts-left {margin-top: 16px;width: 153px;height: 153px;}.text-right {margin-left: 21px;// margin-top: 30px;.text-right-item {width: 226px;margin-bottom: 10px;line-height: 24px;height: 24px;}.acitve {background: url(./img/xuanzhong.png) no-repeat;}.text-color {width: 3px;height: 16px;line-height: 16px;margin-right: 8px;margin-left: 13px;margin-top: 4px;}.text-right-item-title {width: 72px;font-size: 14px;}.color0 {background: radial-gradient(#a1ffb6 0%, #c7fff5 100%);}.color1 {background: radial-gradient(#7ab8ff 0%, #c7fff5 100%);}.color2 {background: radial-gradient(#a1ffb6 0%, #c7fff5 100%);}.color3 {background: radial-gradient(#a1ffb6 0%, #c7fff5 100%);}.text-border {width: 1px;height: 14px;margin: 4px 12px 0;border-right: 1px solid rgba(255, 255, 255, 0.4);}}.fix-position {top: -25px;}
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/641650.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

金融风控信用评分卡建模(Kaggle give me credit数据集)

1 数据预处理数据 数据来源于Kaggle的Give Me Some Credit&#xff0c;包括25万条个人财务情况的样本数据 1.1 导包读数据 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.ensemble import RandomForestRegressor import seaborn as …

Midjourney与waifu2x双剑合璧:完美打造超高清动漫图像

在追求完美的动漫图像时&#xff0c;质量和分辨率是两个关键因素。Midjourney&#xff08;一个神秘而强大的AI图像生成工具&#xff09;与waifu2x&#xff08;一个专门用于放大动漫风格图像的AI工具&#xff09;的结合使得创造超高清的动漫图像变得触手可及。本文将引导您如何使…

geoserver安装部署

1.配置Java环境 首先我们先来官网下载JDK&#xff0c;由于我们的geoserver版本是和 java11 和 java17 适配的&#xff0c;所以我们选择 java11 下载好了点击安装&#xff0c;无脑下一步就行&#xff0c;想改路径就改一下&#xff0c;不过需要把路径记住 &#xff0c;后面需要用…

【代码随想录刷题记录】LeetCode367有效的完全平方数

题目地址 1. 思路 这个题就用二分查找的思想&#xff0c;比LeetCode69x的平方根要简单一些&#xff0c;那个还要处理开平方不是整数的情况&#xff0c;这个直接就按左闭右闭&#xff0c;middle的平方是num就返回true&#xff0c;否则继续迭代二分直到找到middle的平方是num的…

docker 报错 error adding seccomp filter rule for syscall clone3

网上有一些说法&#xff0c;例如重新安装docker 但是我自己尝试&#xff0c;用 –security-opt seccompunconfined 就可以&#xff0c;但是需要把这个命令放到紧挨着run的位置&#xff0c;如果放到偏后的位置&#xff0c;可能不起作用。 以下命令是其他网友启动是的命令&…

ME21N行项目增强

ME21N行项目增强 一、增强描述 需要在使用ME21创建采购订单时将行项目加个默认值增强BADI&#xff1a;ME_PROCESS_PO_CUST 二、增强步骤 使用事务码se19建立一个增强实施. 输入一个新建的实施名字和实施描述:ZME_PROCESS_PO_CUST1 重写接口方法PROCESS_ITEM,双击进去即可. …

Ultralytics YOLOv8 英伟达™ Jetson®处理器部署

系列文章目录 前言 本综合指南提供了在英伟达 Jetson设备上部署Ultralytics YOLOv8 的详细攻略。此外&#xff0c;它还展示了性能基准&#xff0c;以证明YOLOv8 在这些小巧而功能强大的设备上的性能。 备注 本指南使用Seeed Studio reComputer J4012进行测试&#xff0c;它基于…

壹[1],VisionMaster-脚本篇

1,SDK开发帮助文件地址 海康VisionMaster安装目录\VisionMaster4.3.0\Development\V4.x\Documentations\CH 2,脚本编辑问题 注:自带的编译器加载程序集找不到元(操作流程编辑程序集/添加程序集/预编译) 注:使用VS进行编译生成并保存(导出工程/选择sln文件并用Vs打开) 注…

基于人工智能的机动车号牌检测与推理系统v1.0

基于人工智能的机动车号牌检测与推理系统v1.0代码重构与实现。 目前整合3中现有算法&#xff0c;并完成阶段性改造&#xff0c;包括【传统方法检测车牌&#xff0c;SVM推理字符】、【YOLO方法检测车牌&#xff0c;SVM推理字符】、【YOLO方法检测车牌&#xff0c;CNN推理字符】&…

网盘兼职真的能月入过万吗?你适合做哪种网盘分享牛?

1. 分享大容量文件&#xff1a; 提供常见软件安装包、系统镜像、游戏资源等常用的大容量文件&#xff0c;以满足用户的需求。 创建分类目录&#xff0c;便于用户浏览和查找所需文件。 编写详细的文件描述&#xff0c;包括文件版本、适用系统、安装方法等信息&#xff0c;帮助用…

Linux系统中Nginx的使用

Nginx是一款开源的高性能、高可靠性的Web服务器和反向代理服务器。它在Linux系统中得到了广泛的应用&#xff0c;被用于构建高性能的Web应用和提供反向代理服务。下面将介绍Nginx在Linux系统中的使用以及一些常见的应用案例。 一、Nginx的安装和配置 安装Nginx 在Linux系统中…

CTFshow-PWN-栈溢出(pwn36)

存在后门函数&#xff0c;如何利用&#xff1f; 好好好&#xff0c;终于到了这种有后门函数的了 checksec 检查一下&#xff1a; 32 位程序&#xff0c;RELRO 保护部分开启 RWX: Has RWX segments 存在可读可写可执行的段 使用 ida32 看 main 函数 跟进 ctfshow 函数…