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

news2024/11/26 0:03:52

安装: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);
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

神经网络(系统性学习三):多层感知机(MLP)

相关文章&#xff1a; 神经网络中常用的激活函数 神经网络&#xff08;系统性学习一&#xff09;&#xff1a;入门篇 神经网络&#xff08;系统性学习二&#xff09;&#xff1a;单层神经网络&#xff08;感知机&#xff09; 多层感知机&#xff08;MLP&#xff09; 多层感…

C语言练习.if.else语句.strstr

今天在做题之前&#xff0c;先介绍一下&#xff0c;新学到的库函数strstr 想要使用它&#xff0c;要先给它一个头文件<string.h> char *strstr(const char*str1,const char*str2); 首先&#xff1a;1.strstr的返回值是char&#xff0c;字符类型的。 2.两个实参&#xff…

golang实现TCP服务器与客户端的断线自动重连功能

1.服务端 2.客户端 生成服务端口程序: 生成客户端程序: 测试断线重连: 初始连接成功

c语言数据结构与算法--简单实现线性表(顺序表+链表)的插入与删除

老规矩&#xff0c;点赞评论收藏关注&#xff01;&#xff01;&#xff01; 目录 线性表 其特点是&#xff1a; 算法实现&#xff1a; 运行结果展示 链表 插入元素&#xff1a; 删除元素&#xff1a; 算法实现 运行结果 线性表是由n个数据元素组成的有限序列&#xff…

textureLod lod的确定

1. 自动计算导数方法 float calculateLOD(sampler2D tex, vec2 uv) { // 计算纹理坐标的导数 vec2 dUVdx dFdx(uv); vec2 dUVdy dFdy(uv); // 计算纹理大小 vec2 textureSize textureSize(tex, 0); // 0表示基础mipmap级别 // 计算LOD float maxDeriv max(length(…

C++数据结构与算法

C数据结构与算法 1.顺序表代码模版 C顺序表模版 #include <iostream> using namespace std; // 可以根据需要灵活变更类型 #define EleType intstruct SeqList {EleType* elements;int size;int capacity; };// Init a SeqList void InitList(SeqList* list, int capa…

SSH 反向端口转发-R

近期和同学聊到了他遇到的一个问题&#xff1a; 本地机器A&#xff0c;远程开发机C&#xff0c;机器A需要通过ssh连接开发机C进行开发&#xff0c;ssh直连不通&#xff0c;SCP传输文件的话就比较费劲&#xff0c;需要通过跳板机B&#xff0c;经过跳板机这一步骤可用&#xff0…

实时质检系统—静音检测功能设置流程

设置流程 1. 设置静音检测时间 在实时质检系统中&#xff0c;有一静音检测功能&#xff1a;可以对主叫或被叫在接通后的规定时间内开启静音检测。例&#xff1a;被叫静音检测配置设置了10&#xff0c;那么质检电话在接通后的10秒内&#xff0c;开启静音检测&#xff0c;如果被…

生成式UI 动态化SDK的研发(二)--实现垂直布局、水平布局以及文字组件

文章目录 1. 概述2. 效果展示2.1 垂直布局容器(Column)2.2 水平布局容器(Row )2.3 本文示例动态化模板DSL 3. 生成式UI 动态化SDK的渲染流程4. Column和Row组件实现4.1 Column组件4.1.1 视图的渲染4.1.2 事件解析绑定 4.2 Row组件4.3 文字组件(Text) 5. 源码地址 1. 概述 在前…

JavaScript中的this指向绑定规则(超全)

JavaScript中的this指向绑定规则&#xff08;超全&#xff09; 1.1 为什么需要this? 为什么需要this? 在常见的编程语言中&#xff0c;几乎都有this这个关键字&#xff08;Objective-C中使用的是self),但是在JavaScript中的this和常见的面向对象语言中的this不太一样 常见面…

Vision Transformer(VIT模型)

【11.1 Vision Transformer(vit)网络详解-哔哩哔哩】 https://b23.tv/BgsYImJ 工作流程&#xff1a; ①将输入的图像进行patch的划分 ②Linear Projection of Flatted patches&#xff0c;将patch拉平并进行线性映射生成token ③生成CLS token&#xff08;用向量有效地表示整…

2024年11月最新 Alfred 5 Powerpack (MACOS)下载

在现代数字化办公中&#xff0c;我们常常被繁杂的任务所包围&#xff0c;而时间的高效利用成为一项核心需求。Alfred 5 Powerpack 是一款专为 macOS 用户打造的高效工作流工具&#xff0c;以其强大的定制化功能和流畅的用户体验&#xff0c;成为众多效率爱好者的首选。 点击链…

C#里怎么样检测文件的属性?

C#里怎么样检测文件的属性? 对于文件来说,在C#里有一种快速的方法来检查文件的属性。 比如文件是否已经压缩, 文件是否加密, 文件是否是目录等等。 属性有下面这么多: 例子演示如下: /** C# Program to View the Information of the File*/ using System; using Syste…

网络安全,文明上网(4)掌握网络安全技术

前言 在数字化时代&#xff0c;个人信息和企业数据的安全变得尤为重要。为了有效保护这些宝贵资产&#xff0c;掌握一系列网络安全技术是关键。 核心技术及实施方式 1. 网络监控与过滤系统&#xff1a; 这些系统构成了网络防御体系的基石&#xff0c;它们负责监控网络通信&…

Vue 项目中如何使用FullCalendar 时间段选择插件(类似会议室预定、课程表)

本文中是基于VUEelementui项目中实现的前后端分离的前端功能部分&#xff1a; 插件的官方文档&#xff1a;FullCalendar 1.安装对应依赖&#xff08;统一安装版本为6.15&#xff09; npm install --save fullcalendar/core6.15 npm install --save fullcalendar/daygrid6.…

Oracle SQL优化③——表的连接方式

前言 表&#xff08;结果集&#xff09;与表&#xff08;结果集&#xff09;之间的连接方式非常重要&#xff0c;如果CBO选择了错误的连接方式&#xff0c;本来几秒就能出结果的SQL可能执行一天都执行不完。如果想要快速定位超大型SQL性能问题&#xff0c;就必须深入理解表连接…

小程序25- iconfont 字体图标的使用

项目中使用到图标&#xff0c;一般由公司设计进行设计&#xff0c;设计好后上传到阿里巴巴矢量图标库 日常开发过程中&#xff0c;也可以通过 iconfont 图标库下载使用自带的图标 补充&#xff1a;使用 iconfont 图标库报错&#xff1a;Failed to load font 操作步骤&#xff…

Java基于SpringBoot+Vue的藏区特产销售平台

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

selinux及防火墙

selinux说明 SELinux 是 Security-Enhanced Linux 的缩写&#xff0c;意思是安全强化的 linux 。 SELinux 主要由美国国家安全局&#xff08; NSA &#xff09;开发&#xff0c;当初开发的目的是为了避免资源的误用。 httpd进程标签&#xff08;/usr/share/nginx/html &#…

详细探索xinput1_3.dll:功能、问题与xinput1_3.dll丢失的解决方案

本文旨在深入探讨xinput1_3.dll这一动态链接库文件。首先介绍其在计算机系统中的功能和作用&#xff0c;特别是在游戏和输入设备交互方面的重要性。然后分析在使用过程中可能出现的诸如文件丢失、版本不兼容等问题&#xff0c;并提出相应的解决方案&#xff0c;包括重新安装相关…