Echarts+VUE饼图的使用(基础使用、多个饼图功能、单组饼图对应颜色使用)

安装:npm install echarts --save
配置:main.js

// 引入echarts
import * as echarts from 'echarts'
Vue.prototype.$echarts = echarts

一、基础饼图(直接拷贝就能出效果)

 <div class="big-box" ref="demoEhart"></div>
mounted() {
   this.demoChart()
}
demoChart(){
 var myChart = this.$echarts.init(this.$refs.demoEhart);
 var option = {
  title: {
    text: 'Referer of a Website',
    subtext: 'Fake Data',
    left: 'center'
  },
  tooltip: {
    trigger: 'item'
  },
 legend: {
            orient: "horizontal",
            icon: "circle",
            bottom: 0,
            x: "center",
  
            textStyle: {
              color: "#fff"
            }
          },
  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' }
      ],
      
    }
  ]
};
 myChart.setOption(option);
}

二、饼图(多组动态显示饼图数量的数据)

//获取到的数据
ceshilist:[
      {name:'/dev',free:30,used:520},
      {name:'/d456',free:30,used:520},
      {name:'/d88',free:30,used:520},
      {name:'/d78978',free:30,used:520},
      {name:'/sdasd8',free:30,used:520},
      {name:'/d8sad456asd8',free:30,used:520},
      {name:'/sasss8',free:30,used:520},
      {name:'/dwqewunn8',free:30,used:520},
      {name:'/dev336',free:30,used:520}
    ],
//最终需要的数据格式
data:[
[{value:ceshilist[i].free,name:'可用量',typename:ceshilist[i].mountPath},
{value:ret[i].used,name:'已用量',typename:ret[i].fs_type_name}],
[{value:ceshilist[i].free,name:'可用量',typename:ceshilist[i].mountPath},
{value:ret[i].used,name:'已用量',typename:ret[i].fs_type_name}]
]

步骤:

 <div class="big-box" ref="pieEhart"></div>
  data() {
    return {
      source:[],
      setData:new Map//实时刷新map对象
    }
  }
mounted() {
   this.pieEhartclick()
}
getDiskData(ret){
   let source=[]
   //将获取到的数据变成以下数据格式
   for (let i = 0; i < ret.length; i++) {
      source.push([{value:ret[i].free,name:'可用量',typename:ret[i].mountPath},{value:ret[i].used,name:'已用量',typename:ret[i].fs_type_name}])
   }
   this.source=source
   this.pieEhartclick()//重新渲染图表方法,不是实时数据可以不加此代码
}
  
 // 磁盘饼图
    pieEhartclick(){
      var myChart = this.$echarts.init(this.$refs.pieEhart);
      var datas=this.source
      // let that = this;
      var option = {
          {
             text:'磁盘使用情况',
             subtext:'将鼠标移动对应饼图上以查看对应信息'
          },
          //每个饼图对应的标题名称
          title:datas.map(function(data,idx){
            var numcol=4  //定义列
            var numrow=Math.ceil(datas.length/numcol) //定义行 有多少条数据除以列就是行数
            var top=Math.floor(idx/numcol)*100/numrow+10//距离上面的距离
            var left=(idx%numcol)*100/numcol+12//距离左边的距离
            return{
              subtext:data[0].typename,
              top:top+'%',
              left:left+'%',
              textAlign:'center',
              subtextStyle:{
                color:'#ffffff'//字体颜色
              }
            }
          }),
          legend: {},
          color:["#3F60C6","#9A60B4"],
          tooltip: {
            trigger:'item',
            formatter:'{b}:{c}({d}%)'//鼠标悬浮显示数据
          },
          series:datas.map(function(data,idx){
            var numcol=4 //定义列
            var numrow=Math.ceil(datas.length/numcol) //定义行 有多少条数据除以列就是行数
            var top=Math.floor(idx/numcol)*100/numrow//距离上面的距离
            var left=(idx%numcol)*100/numcol//距离左边的距离
            return{
              type:'pie',
              // radius:[20,60],
              top:top+'%',
              left:left+'%',
              height:100/numrow+'%',
              width:100/numcol+'%',
              itemStyle:{
                // borderColor:'#fff',
                // borderWidth:1,
                // color:function(data,idx){
                //   if(data[idx].value>95){
                //     return 'red'
                //   }
                // }
              },
              label:{show:false},
              data:data
            }
          }),
      };
      myChart.setOption(option);
    },

三、饼图(单组数据)
在这里插入图片描述

扩展功能:一般自定义颜色是按照数据的顺序依次对应,现在想要指定字段对应某个颜色

 <div class="big-box" ref="oneEhart"></div>
cdata: {
        xData: ["水文", "森林", "气象", "地质",  "其他"],
        seriesData: [
          { value: 35, name: "水文" ,itemStyle: {color:"#9fe6b8"}},
          { value: 15, name: "森林" },
          { value: 15, name: "气象" },
          { value: 25, name: "地质" },
          { value: 40, name: "其他" }
        ]
 },
coloritem:{
        "森林":"#9fe6b8",
        "气象":"#0099ff",
        "水文":"#32c5e9",
        "地质":"#e7bcf3",
        "其他":"#fb7293"
      }

mounted() {
   this.getOnechart()
}
 methods: {
    getBar(){
      this.$axios.post('******').then((res)=>{
        let items=res.data //接收到的数据
        this.cdata.seriesData=this.getData(items) //变成想要的数据格式方法
        console.log(this.cdata.seriesData)
      })
    },
    //对应颜色处理
    getData(data) {
      let that=this
      return data.map(function (item) {
        return {
          value: item.value,
          name: item.name,
          itemStyle: {
            color: that.coloritem[item.name] // 使用颜色映射表中对应的颜色
          }
       };
     });
    }
 }

getOnechart(){
var myChart = this.$echarts.init(this.$refs.oneEhart);
let newdata=this.cdata
var option = {
  title: {
    text: 'Referer of a Website',
    subtext: 'Fake Data',
    left: 'center'
  },
  tooltip: {
    trigger: 'item',
    formatter: "{c} ({d}%)"
  },
  toolbox: {
    show: true
  },
  calculable: true,
  //默认方块显示颜色标签
  // legend: {
    // orient: 'vertical',
    // left: 'left'
  //},  
  legend: {//圆圈
      orient: "horizontal",
      icon: "circle",
      bottom: 0,
      x: "center",
      data: newData.xData,
      textStyle: {
        color: "#fff"
      }
  },       
  series: [
    {
      name: 'Access From',
      type: 'pie',
      radius: '50%',
      label: {
              //echarts饼图内部显示百分比设置
               formatter: "{b}\n{d}%",
               lineHeight: 15,
              //  color: "#ffffff", //颜色
               fontSize: 12 //字体大小
      },
      data: [
        { value: 1048, name: 'Search Engine' },
        { value: 735, name: 'Direct' },
        { value: 580, name: 'Email' },
        { value: 484, name: 'Union Ads' },
        { value: 300, name: 'Video Ads' }
      ],
      data: newData.seriesData
    }
  ]
};
 myChart.setOption(option);
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

文件管理 II(文件的物理结构、存储空间管理)

一、文件的物理结构 文件实际上是一种抽象数据类型&#xff0c;我们要研究它的逻辑结构、物理结构&#xff0c;以及关于它的一系列操作。文件的物理结构就是研究文件的实现&#xff0c;即文件数据在物理存储设备上是如何分布和组织的。同一个问题有两个方面的回答&#xff1a;…

半导体、晶体管、集成电路、芯片、CPU、单片机、单片机最小系统、单片机开发板-概念串联辨析

下面概念定义从小到大串联&#xff1a; 半导体&#xff08;semiconductor&#xff09;&#xff1a; 是一类常温下导电性能介于导体与绝缘体之间的材料&#xff0c;这种材料的导电性可以随着外部环境比如电压、温度、光照的变换而改变。常见的半导体材料有硅、锗、砷化镓等。 晶…

【Z240001】基于SpringBoot+Vue实现的酒店管理系统的设计与实现

基于SpringBootVue实现的酒店管理系统的设计与实现 1. 项目描述2. 运行环境3.界面展示4.源码获取 1. 项目描述 基于SpringBootVue实现的酒店管理系统设计了管理员、员工、用户三种角色。 前台界面里游客和已经登录的用户可以浏览客房信息、公告信息等&#xff0c;已经登录的用…

【计算机网络】解决bind error

服务器有时可以立即重启&#xff0c;有时候无法立即重启 — bind error 首先要知道&#xff1a;四次挥手动作完成之后&#xff0c;主动断开连接的一方要维持一段时间的TIME_WAIT bind error原因&#xff1a;因为是服务器主动断开的&#xff0c;所以服务器要去维持TIME_WAIT状…

爬虫实战:采集知乎XXX话题数据

目录 反爬虫的本意和其带来的挑战目标实战开发准备代码开发发现问题1. 发现问题[01]2. 发现问题[02] 解决问题1. 解决问题[01]2. 解决问题[02] 最终结果 结语 反爬虫的本意和其带来的挑战 在这个数字化时代社交媒体已经成为人们表达观点的重要渠道&#xff0c;对企业来说&…

关于相机选型的一些参数说明

上一篇&#xff1a;关于相机的一些参数计算&#xff08;靶面、视野等&#xff09; 目录 1.卷帘快门和全局快门1.1 卷帘快门1.2 全局快门PS&#xff1a;视觉伺服与快门选择 2.黑白和彩色3.CCD和CMOS3.1 CCD3.2 CMOSCCD VS CMOS 4.面阵和线扫4.1 面阵4.2 线扫4.3 面阵 VS 线扫 5.…

使用 helm 部署 gitlab

一、下载 Gitlab chart 进入 artifacthub 官网 选择你想要的版本&#xff08;我选择的chart版本是 8.4.0 , gitlab 版本是17.4.0 &#xff09; 进入到控制台&#xff0c;添加helm仓库 如果你想不改任何配置&#xff0c;你可以执行安装命令&#xff0c;等待安装即可helm instal…

React (三)

文章目录 项目地址十二、性能优化12.1 使用useMemo避免不必要的计算12.2 使用memo缓存组件,防止过度渲染12.3 useCallBack缓存函数12.4 useCallBack里访问之前的状态(没懂)十三、Styled-Components13.1 安装13.2给普通html元素添加样式13.3 继承和覆盖样式13.4 给react组件添…

win10局域网加密共享设置

1、创建共享账户 我的电脑右键选择管理 选择本地用户和组 -> 用户 双击用户 在空白区域右键,新建用户 然后创建用户 点击创建后 2、设置网络 右下角网络右键

如何从 VMware 官网下载最新版本的 VMware Workstation

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 下载VMware 📒📝 操作步骤🎈 获取方式 🎈⚓️ 相关链接 ⚓️📖 介绍 📖 你是否曾尝试从 VMware 官网下载 VMware Workstation,但总是被繁杂的选择和复杂的操作困扰?VMware 提供的产品种类繁多,而且官网页面设计复…

服务器数据恢复—raid5阵列热备盘上线失败导致EXT3文件系统不可用的数据恢复案例

服务器数据恢复环境&#xff1a; 两组分别由4块SAS硬盘组建的raid5阵列&#xff0c;两组阵列划分的LUN组成LVM架构&#xff0c;格式化为EXT3文件系统。 服务器故障&#xff1a; 一组raid5阵列中的一块硬盘离线。热备盘自动上线替换离线硬盘&#xff0c;但在热备盘上线同步数据…

机械设计学习资料

免费送大家学习资源&#xff0c;已整理好&#xff0c;仅供学习 下载网址&#xff1a; https://www.zzhlszk.com/?qZ02-%E6%9C%BA%E6%A2%B0%E8%AE%BE%E8%AE%A1%E8%A7%84%E8%8C%83SOP.zip

Proteus 8.17的详细安装教程

通过百度网盘分享的文件&#xff1a;Proteus8.17(64bit&#xff09;.zip 链接&#xff1a;https://pan.baidu.com/s/1zu8ts1Idhgg9DGUHpAve7Q 提取码&#xff1a;8q8v 1.右击【Proteus8.17(64bit&#xff09;.zip】&#xff0c;选择【全部解压缩......】。 &#xff0c; 2.…

qt添加模块

以QtNetwork模块为例 方式一 扩展-qt vs tools-qt project settings 方式二 右键选中项目-属性-qt project settings 方法三 在此界面选择select modules,即可进行相应模块添加

Win11 22H2/23H2系统11月可选更新KB5046732发布!

系统之家11月22日报道&#xff0c;微软针对Win11 22H2/23H2版本推送了2024年11月最新可选更新补丁KB5046732&#xff0c;更新后&#xff0c;系统版本号升至22621.4541和22631.4541。本次更新后系统托盘能够显示缩短的日期和时间&#xff0c;文件资源管理器窗口很小时搜索框被切…

【解决】Unity TMPro字体中文显示错误/不全问题

问题描述&#xff1a;字体变成方块 原因&#xff1a;字体资源所承载的长度有限 1.找一个中文字体放入Assets中 2.选中字体创建为TMPro 字体资源 3.选中创建好的字体资源&#xff08;蓝色的大F&#xff09; 在右边的属性中找到Atlas Width h和 Atlas Heigth,修改的大一点&…

Python中“暂停”(time.sleep?input?)

input函数最是经典&#xff0c;在多种实现中简单粗暴单纯而经济。 (笔记模板由python脚本于2024年11月22日 10:58:38创建&#xff0c;本篇笔记适合比较熟悉python的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大…

SpringMVC 执行流程详解

目录 前言1. SpringMVC 的核心组件概述1.1 DispatcherServlet1.2 HandlerMapping1.3 HandlerAdapter1.4 拦截器&#xff08;HandlerInterceptor&#xff09;1.5 ViewResolver 2. SpringMVC 的执行流程详解2.1 接收请求并分发2.2 获取 HandlerExecutionChain2.3 获取 HandlerAda…

扩散模型从原理到实战 入门

diffusion-models-class-CN/unit1/README_CN.md at main darcula1993/diffusion-models-class-CN GitHub 你可以使用命令行来通过此令牌登录 (huggingface-cli login) 或者运行以下单元来登录&#xff1a; from huggingface_hub import notebook_loginnotebook_login() http…

企业信息化-走进身份管理之搭建篇

​一、身份管理是什么 我们先要弄懂统一身份管理到底是什么&#xff1f; 统一身份管理&#xff08;Unified Identity Manager&#xff0c;UIM&#xff09;&#xff0c;身份管理&#xff08;Identity Management&#xff0c;简称IDM&#xff09;&#xff0c;也被称为IAM&#…