echarts 柱状图-折线图-饼图的基础使用

news2025/1/21 17:38:04

 上图示例图表展示相关配置:

      var myChart = echarts.init(this.$refs.firstMain);
      myChart.setOption({
        legend: { // 图例设置
          top: "15%",
          type: "scroll",
          orient: "vertical",//图例列表的布局朝向。
          left: "right",
          pageIconColor: 'red', // 激活的分页按钮颜色
          pageIconInactiveColor: 'yellow', // 没激活的分页按钮颜色
          selectedMode: false,
          pageIconSize: 12,  //当然就是按钮的大小
        },
        title: {
          text: "县区采集分布",
          left: "left",
        },
        tooltip: { // 提示框组件设置
          padding: [15, 15],
          enterable: true,// 鼠标是否可进入提示框浮层中,默认为false,如需详情内交互,如添加链接,按钮,可设置为 true。
          extraCssText: "max-width:60%;max-height:83%; overflow: auto; ",//额外附加到浮层的 css 样式。
          show: true,
          trigger: "item",
          confine: true, // 是否将 tooltip 框限制在图表的区域内。
          // dom: "overflow:hidden",
          formatter: function (params) {
            let htmlStr = `<span style="color:${params.color}">${params.data.value}</span>`;
            //圆点后面显示的名称'
            let res = params.marker +params.data.name +"&nbsp;&nbsp;" + htmlStr +"<br/>";
            for (var i = 0; i < params.data.list.length; i++) {
              let obj = params.data.list[i];
              res += `<div style="color:#999;text-indent:1em">${obj.label}&nbsp; &nbsp;<span style="color:#333333">${obj.total}</span></div>`;
            }
            return `${res}`; //最后返回拼接好的值
          },
        },
        grid: {
          left: "3%",
          top: "20%",
          right: "2%",
          bottom: "3%",
          containLabel: true,
        },
        dataset: {
          // 提供一份数据。
          dimensions: ["name", "value"],
          source: res.data.data,
        },
        graphic: { // 数据为空时展示为空提示
          type: "text", // 类型:文本
          left: "center",
          top: "middle",
          silent: true, // 不响应事件
          invisible: res.data.data.length > 0, // 有数据就隐藏
          style: {
            x: 0,
            y: 0,
            fill: "#9d9d9d",
            fontWeight: "bold",
            text: "暂无数据",
            fontFamily: "Microsoft YaHei",
            fontSize: "25px",
          },
        },
        series: [
          {
            name: this.emptyText,
            type: "pie",
            radius: ["35%", "45%"],
            roseType: "area",
            color: ["#4889FF", "#63C2FF", "#66E5E9", "#F478BB", "#AE8DFF"],
            itemStyle: {
              borderRadius: 8,
            },
            // 高亮样式
            emphasis: {
              label: {
                show: true,
                fontSize: 20,
                fontWeight: "bold",
              },
            },
            //label 饼图图形上的文本标签,可用于说明图形的一些数据信息,比如值,名称等。
            label: {
              position: "outer", //文本标签的位置。
              alignTo: "labelLine", //标签的对齐方式-折现的长短
              bleedMargin: 5,
              show: true,
              formatter: "{@name}" + "{d}%",
            },
          },
        ],
      });

 上述示例图表展示相关配置:

一般来说,饼图数据要么内部展示要么外部展示,上面这个饼图表,外部有折现展示,内部有百分比展示,这里series配置两个数据对象才能达到这样的效果,详见配置

var myChart = echarts.init(this.$refs.fiveMain);
      myChart.setOption({
        legend: {
          bottom: 40,
          selectedMode: false,
          show: res.data.data.length > 0,
        },
        // 高亮样式
        emphasis: {
          label: {
            show: true,
            fontSize: 20,
            fontWeight: "bold",
          },
        },
        tooltip: {
          padding: [15, 15],
          show: true,
          trigger: "item",
          formatter: function (params) {
            let htmlStr = `<span style="color:${params.color}">${params.data.value}</span>`;
            let res =
              params.marker +
              params.data.name +
              "&nbsp;&nbsp;" +
              htmlStr +
              "<br/>";
            return `${res}`; //最后返回拼接好的值
          },
        },
        label: {
          alignTo: "labelLine",
          formatter: function (data) {
            return `${data.percent}%\n\n${data.name}`;
          },
          minMargin: 5,
          edgeDistance: 10,
          lineHeight: 15,
        },

        dataset: {
          // 提供一份数据。
          dimensions: ["name", "value"],
          source: res.data.data,
        },
        series: [
          {
            name: "暂无数据",
            type: "pie",
            radius: "55%",
            color: ["#4889FF", "#63C2FF", "#66E5E9", "#8E8EFE"],
            // avoidLabelOverlap: false, //设置为true时,当数值为0时不重叠
            // roseType: "area",
            labelLayout: function (params) { //折现长短的效果
              const isLeft = params.labelRect.x < myChart.getWidth() / 2;
              const points = params.labelLinePoints;
              // Update the end point.
              points[2][0] = isLeft
                ? params.labelRect.x
                : params.labelRect.x + params.labelRect.width;
              return {
                labelLinePoints: points,
              };
            },
          },
          {
            name: "暂无数据",
            type: "pie",
            radius: "55%",
            // avoidLabelOverlap: false, //设置为true时,当数值为0时不重叠
            center: ["50%", "50%"],
            // 高亮样式
            emphasis: {
              label: {
                show: true,
                fontSize: 20,
                fontWeight: "bold",
              },
            },
            // roseType: "radius",
            color: ["#4889FF", "#63C2FF", "#66E5E9", "#F478BB", "#AE8DFF"],
            //label 饼图图形上的文本标签,可用于说明图形的一些数据信息,比如值,名称等。
            label: {
              show: true,
              position: "inside",
              formatter: `{d}%`,
              // formatter: '{b}: {c} ({d}%)',
            },
          },
        ],
        graphic: {
          type: "text", // 类型:文本
          left: "center",
          top: "middle",
          silent: true, // 不响应事件
          z: 5,
          invisible: res.data.data.length > 0, // 有数据就隐藏
          style: {
            x: 0,
            y: 0,
            fill: "#2d2c2c",
            fontWeight: "bold",
            text: "暂无数据",
            fontFamily: "Microsoft YaHei",
            fontSize: "25px",
          },
        },
      });

 上述示例图表展示相关配置:

      var myChart = echarts.init(this.$refs.threeMain);
      myChart.setOption({
        title: {
          text: "采集时间分布",
        },
        grid: {
          left: "3%",
          top: "25%",
          right: "2%",
          bottom: "2%",
          containLabel: true,
        },
        legend: {
          top: "10%",
          selectedMode: false,
        },
        tooltip: {
          trigger: "axis",
          confine: true, // 是否将 tooltip 框限制在图表的区域内。
          padding: [15, 15],
          enterable: true, // 鼠标是否可进入提示框浮层中,默认为false,如需详情内交互,如添加链接,按钮,可设置为 true。
          extraCssText: "max-width:60%;max-height:83%; overflow: auto; ", //额外附加到浮层的 css 样式。
        },
        xAxis: {
          show: true,
          type: "category",
          data: res.data.data.abscissa,
          // boundaryGap: false,
          axisLabel: {
            interval: 0,
            rotate: 25,
          },
          splitLine: {
            //网格线
            show: true,
          },
          axisTick: {
            show: false, // 不显示坐标轴刻度线
          },
        },
        yAxis: {
          show: true,
          type: "value",
          splitLine: {
            //网格线
            show: false,
          },
          // 坐标 轴线
          axisLine: {
            show: true,
          },
        },
        graphic: {
          type: "text", // 类型:文本
          left: "center",
          top: "middle",
          silent: true, // 不响应事件
          invisible: res.data.data.abscissa.length > 0, // 有数据就隐藏
          style: {
            x: 0,
            y: 0,
            fill: "#9d9d9d",
            fontWeight: "bold",
            text: "暂无数据",
            fontFamily: "Microsoft YaHei",
            fontSize: "25px",
          },
        },
        series: res.data.data.series,
      });

  上述示例图表展示相关配置:

      var myChart = echarts.init(this.$refs.fourMain);
      myChart.setOption({
        // title: {
        //   text: "年龄分布",
        // },
        tooltip: {
          show: true,
          trigger: "axis",
          axisPointer: { type: "shadow" },
          shadowstyle: {
            color: "#65A3FF",
            opacity: 0.2,
            width: "auto",
          },
        },
        xAxis: {
          type: "value",
          axisLine: {
            show: true, //不显示坐标轴线
          },
          axisTick: {
            show: false, // 不显示坐标轴刻度线
          },
          axisLabel: {
            formatter: function (value, index) {
              if (value == 0 || (value > 0 && value < 10000)) {
                return value + "";
              } else {
                return value / 10000 + "万";
              }
            },
          },
        },
        yAxis: {
          type: "category",
          // name: "单位(人)",
          data: res.data.data.ordinate,
          axisTick: {
            show: false, // 不显示坐标轴刻度线
          },
        },
        series: [
          {
            color: "#247FFF", // 柱状条颜色
            barWidth: 30, //柱子宽度
            data: res.data.data.abscissa,
            type: "bar",
            showBackground: true,//柱状阴影
            backgroundStyle: { //柱状阴影颜色
              color: "rgba(180, 180, 180, 0.2)",
            },
            label: {
              formatter: "{c}" + "",
              show: true,
              position: "right",
              fontWeight: "bolder",
              fontSize: "12",
              color: "#4889ff",
            },
          },
        ],
        graphic: {
          type: "text", // 类型:文本
          left: "center",
          top: "middle",
          silent: true, // 不响应事件
          invisible: res.data.data.abscissa.length > 0, // 有数据就隐藏
          style: {
            x: 0,
            y: 0,
            fill: "#9d9d9d",
            fontWeight: "bold",
            text: "暂无数据",
            fontFamily: "Microsoft YaHei",
            fontSize: "25px",
          },
        },
      });

   上述示例图表展示相关配置:

      var myChart = echarts.init(this.$refs.twoMain);
      myChart.setOption({
        title: {
          show: true,
          text: "学历分布",
          left: "left",
          top: "top",
        },
        grid: {
          left: "4%",
          top: "25%",
          right: "2%",
          bottom: "3%",
          containLabel: true,
        },
        tooltip: {
          show: true,
          trigger: "axis",
          axisPointer: { type: "shadow" },
          shadowstyle: {
            color: "#65A3FF",
            opacity: 0.2,
            width: "auto",
          },
        },
        xAxis: {
          type: "category",
          data: res.data.data.abscissa,
          axisTick: {
            show: false, // 不显示坐标轴刻度线
          },
        },
        yAxis: {
          show: true,
          type: "value",
          name: "数量(人)",
          // 坐标 轴线
          axisLine: {
            show: true,
          },
          // 坐标轴刻度线
          axisTick: {
            show: false,
          },
          //网格线
          splitLine: {
            show: true,
          },
        },
        graphic: {
          type: "text", // 类型:文本
          left: "center",
          top: "middle",
          silent: true, // 不响应事件
          invisible: res.data.data.ordinate.length > 0, // 有数据就隐藏
          style: {
            x: 0,
            y: 0,
            fill: "#9d9d9d",
            fontWeight: "bold",
            text: "暂无数据",
            fontFamily: "Microsoft YaHei",
            fontSize: "25px",
          },
        },
        series: [
          {
            data: res.data.data.ordinate,
            color: "#247FFF", // 柱状条颜色
            barWidth: 30, //柱子宽度
            type: "bar",
             showBackground: true,
            backgroundStyle: {
              color: "rgba(180, 180, 180, 0.2)",
            },
            label: {
              formatter: "{@num}" + "人",
              show: true,
              position: "top",
              fontWeight: "bolder",
              fontSize: "12",
              color: "#4889ff",
            },
          },
        ],
      });

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

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

相关文章

【Docker】 Docker-Composite 启动 WordPress

引 本文将使用流行的博客搭建工具 WordPress 搭建一个私人博客站点。部署过程中使用到了 Docker 、MySQL 。站点搭建完成后经行了发布文章的体验。 WordPress WordPress 是一个广泛使用的开源内容管理系统&#xff08;CMS&#xff09;&#xff0c;用于构建和管理网站、博客和…

ChatGPT​保密吗?它有哪些潜在风险?如何规避?

自2022年11月公开发布以来&#xff0c;ChatGPT已成为许多企业和个人的必备工具&#xff0c;但随着该技术越来越多地融入我们的日常生活&#xff0c;人们很自然地想知道&#xff1a;ChatGPT是否是保密的。 问&#xff1a;ChatGPT保密吗&#xff1f; 答&#xff1a;否&#xff0…

MIUI免费字体更换

一、打开主题壁纸 二、选择 热销字 三、点击右上角 搜索 四、输入 字体 可以看到&#xff0c;免费的字体没多少&#xff0c;此时这里可以输入其他关键词&#xff1a;拼音、手写等&#xff0c;看个人需求进行筛选免费即可 关键词有以下这些&#xff0c;但不局限这些哈 五、点击…

linux系统服务学习(六)FTP服务学习

文章目录 FTP、NFS、SAMBA系统服务一、FTP服务概述1、FTP服务介绍2、FTP服务的客户端工具3、FTP的两种运行模式&#xff08;了解&#xff09;☆ 主动模式☆ 被动模式 4、搭建FTP服务&#xff08;重要&#xff09;5、FTP的配置文件详解&#xff08;重要&#xff09; 二、FTP任务…

共读《科研论文配图绘制指南--基于Python》学习重点

Book 《科研论文配图绘制指南–基于Python》 特别提示 学习内容&#xff08;书籍前3章&#xff09;开营时在群内以PDF形式发放 课程背景 系统地介绍基于Python的科研论文配图的绘制技巧&#xff0c;提高科研工作者的绘图效率&#xff1b; 100多种图形的详细绘制方法&#…

STM32F103-OLED使用教程

目录 1. OLED屏介绍2. OLED如何显示一个点3. 配置OLED屏幕4. OLED显示字符串和汉字5. OLED屏幕显示图片6. 总结 1. OLED屏介绍 OLED&#xff08;Organic Light Emitting Diode&#xff09;&#xff1a;有机发光二极管OLED显示屏&#xff1a;性能优异的新型显示屏&#xff0c;具…

Vue组件(详解)

目录 组件&#xff1a; 全局组件&#xff1a; 在HTML页面声明template&#xff1a; 局部组件&#xff1a; 局部组件第一种方式&#xff1a; 局部组件第二种方式&#xff1a; 插槽slot&#xff1a; 匿名插槽&#xff1a; 具名插槽&#xff1a; 父子组件通信&#xff1…

【双指针_和为 s 的两个数_C++】

和为s的两个数字 class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {int n nums.size();int left 0;int right n-1;while(left<right){if(nums[left]nums[right]>target) right--;else if(nums[left]nums[right]<tar…

Postman接口自动化测试实例

一.实例背景 在实际业务中&#xff0c;经常会出现让用户输入用户密码进行验证的场景。而为了安全&#xff0c;一般都会先请求后台服务器获取一个随机数做为盐值&#xff0c;然后将盐值和用户输入的密码通过前端的加密算法生成加密后串传给后台服务器&#xff0c;后台服务器接到…

车载以太网物理层

车载以太网物理层 O S I 参考模型的第 1 层&#xff08; 最底层&#xff09;。负责逻辑信号&#xff08; 比特流&#xff09;与物理信号&#xff08;电信号、光信号&#xff09;之间的互相转换&#xff0c;通过传输介质为数据链路层提供物理连接。 车载以太网与传统以太网相比…

matlab使用教程(16)—图论中图的定义与修改

1.修改现有图的节点和边 此示例演示如何使用 addedge 、 rmedge 、 addnode 、 rmnode 、 findedge 、 findnode 及 subgraph 函数访问和修改 graph 或 digraph 对象中的节点和/或边。 1.1 添加节点 创建一个包含四个节点和四条边的图。s 和 t 中的对应元素用于指定每条…

【教程】零成本将小米净化器改造为无叶风扇

某宝某多上&#xff0c;就这么点破塑料&#xff0c;就要买79&#xff1f;&#xff01;&#xff01; 我这枚韭菜可不上当。咱自己做一个&#xff01; 真香~

BBS项目day02、注册、登录(登录之随机验证码)、修改密码、退出登录、密码加密加盐

一、注册 1.注册之前端页面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>注册页面</title><!--动态引入文件-->{% load static %}<script src"{% static js/jquery.min.js %…

jquery技术学习2

移动节点 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>移动节点</title><script type"text/javascript" src"../script/jquery-3.6.0.min.js"></script>&l…

【Spring】深入理解 Spring 事务及其传播机制

文章目录 一、Spring 事务是什么二、Spring 中事务的实现方法2.1 Spring 编程式事务&#xff08;手动&#xff09;2.1.1 编程式事务的使用演示2.1.2 编程式事务存在的问题 2.2 Spring 声明式事务&#xff08;自动&#xff09;2.2.1 Transactional 作用范围2.2.2 Transactional …

化繁为简,使用Hibernate Validator实现参数校验

前言 在之前的悦享校园的开发中使用了SSM框架&#xff0c;由于当时并没有使用参数参数校验工具&#xff0c;方法的入参判断使用了大量的if else语句&#xff0c;代码十分臃肿&#xff0c;因此最近在重构代码时&#xff0c;将框架改为SpringBoot后&#xff0c;引入了Hibernate V…

HCIP MPLS实验

MPLS实验 拓扑MPLS VPN配置PE与PE间建立MP-BPG邻居关系R7访问R2,R3,R4环回 拓扑 MPLS VPN配置 首先可以用OSPF协议将R2,R3,R4跑通&#xff0c;然后配置MPLS [R2]mpls lsr-id 2.2.2.2 定义MPLS的router-id&#xff0c;要为本地设备的真实ip地址&#xff0c;且邻居可达&#…

机器学习算法之-逻辑回归(2)

为什么需要逻辑回归 拟合效果太好 特征与标签之间的线性关系极强的数据&#xff0c;比如金融领域中的 信用卡欺诈&#xff0c;评分卡制作&#xff0c;电商中的营销预测等等相关的数据&#xff0c;都是逻辑回归的强项。虽然现在有了梯度提升树GDBT&#xff0c;比逻辑回归效果更…

【学习FreeRTOS】第8章——FreeRTOS列表和列表项

1.列表和列表项的简介 列表是 FreeRTOS 中的一个数据结构&#xff0c;概念上和链表有点类似&#xff0c;列表被用来跟踪 FreeRTOS中的任务。列表项就是存放在列表中的项目。 列表相当于链表&#xff0c;列表项相当于节点&#xff0c;FreeRTOS 中的列表是一个双向环形链表列表的…

【大数据之Kafka】三、Kafka生产者之消息发送流程及同步异步发送API

将外部传送给过来的数据发送到kafka集群。 1 发送原理 &#xff08;1&#xff09;创建main()线程&#xff0c;创建producer对象&#xff0c;调用send方法&#xff0c;经过拦截器&#xff08;可选&#xff09;、序列化器、分区器。 &#xff08;2&#xff09;分区器将数据发送…