echarts(6大基础图表)的使用

目录

一、vue2挂载

二、柱状图

2.1、基础柱状图介绍

2.2、标记:最大值\最小值(markPoint)、平均值(markLine)

2.3、显示:数值显示(label)、柱子宽度(barWidth)、横向柱状图

三、折线图

3.1、标记:最大值\最小值(markPoint)、平均值(markLine)、标注区间(markArea)

3.2、线条控制:平滑(smooth)、风格(lineStyle)

3.3、填充风格(areaStyle)

3.4、紧挨边缘(boundaryGap)、缩放(scale)

3.5、堆叠图(stack)

四、散点图

4.1、气泡图:散点大小(symbolSize)、散点颜色(itemStyle.color)效果

4.2、涟漪动画(type:effectScatter)效果

五、直角坐标系常用配置

5.1、网格:grid

5.2、坐标轴:axis

5.3、区域缩放:dataZoom

六、饼图

6.1、显示数值(label.formatter)

6.2、圆环(radius)

6.3、南丁格尔图(roseType)、选中效果(selectedMode)

​七、雷达图

7.1、显示数值(label)、区域面积(areaStyle)

7.2、绘制类型(shape)

八、仪表盘图

8.1、数值范围、多个指针、颜色

九、通用配置

9.1、标题:title

9.1、提示:tooltip

9.1、工具按钮:toolbox

9.1、图例:legend

十、基础小结

一、vue2挂载

(1)、npm i echarts成功后,在项目的package.json文件里可以看到版本号: "echarts": "^4.9.0"。

(2)、在项目的main.js中

import echarts from "echarts"
Vue.prototype.$echarts = echarts;//挂载到原型,可以在全局使用

(3)、官网:快速上手 - 使用手册 - Apache ECharts

(4)、每个图的具体信息配置项:Documentation - Apache ECharts

二、柱状图

2.1、基础柱状图介绍

<template>
  <div>
    <el-card>
      <div
        ref="echartsMain"
        style="width: 60%; height: 500px"
        id="main1"
      ></div>
    </el-card>
  </div>
</template>
<script>
export default {
  data() {
    return {
      list: [
        { time: "一班", value: 110 },
        { time: "二班", value: 90 },
        { time: "三班", value: 190 },
        { time: "四班", value: 70 },
        { time: "五班", value: 300 },
      ],
    };
  },
  mounted() {
    this.getData();
  },
  methods: {
    getData() {
      // this.$nextTick(() => {});//解决挂载时拿不到this.$refs.echartsMain的bug
      // let myChart = this.$echarts.init(this.$refs.echartsMain);//这样写也行
      let myChart = this.$echarts.init(document.getElementById("main1"));
      myChart.setOption({
        title: {
          text: "基础柱状图显示",
        },
        xAxis: {//xAxis:直角坐标系中的X轴
          type: "category",
          data: this.list.map((d) => d.time),
          axisLabel: {
            //倾斜展示角度
            rotate: 60,
            // 垂直显示
            // formatter: function (value) {
            //   return value.split("").join("\n");
            // },
          },
        },
        yAxis: {//yAxis:直角坐标系中的Y轴
          type:'value',//数值轴
        },
        series: [//series:系列列表
          {
            barWidth:30,
            name: "日期",
            type: "bar",//决定图标类型(bar、line、pie)
            data: this.list.map((d) => d.value),
          },
        ],
      });
    },
  },
};
</script>

常见效果如下:


2.2、标记:最大值\最小值(markPoint)、平均值(markLine)

series: [
          {
         ......
         markPoint: {
              data: [
                {
                  type: "max",
                  name: "最大值",
                },
                {
                  type: "min",
                  name: "最小值",
                },
              ],
            },
         markLine: {
              data: [
                {
                  type: "average",
                  name: "平均值",
                },
              ],
            },
          },
        ],

2.3、显示:数值显示(label)、柱子宽度(barWidth)、横向柱状图

series: [
          {
            ...... 
            barWidth: "30%",
            label: {
              show: true,
              rotate: 60,
              position: "top",
            },
          },
        ],

横向展示:只需将xAxis和yAxis的值或者type的值互换即可

        xAxis: {
          // type: "category", 
          // data: this.list.map((d) => d.time),
          type: "value",
        },
        yAxis: {
          // type: "value",
          type: "category", 
          data: this.list.map((d) => d.time),
        },

三、折线图

将series中 type的值设置为"line"即可!一般用于分析数据随着时间的变化趋势!

常见效果如下:


3.1、标记:最大值\最小值(markPoint)、平均值(markLine)、标注区间(markArea)

series: [
          {
         ......
            markPoint: {
              data: [
                {
                  type: "max",
                },
                {
                  type: "min",
                },
              ],
            },
            markLine: {
              data: [
                {
                  type: "average",
                },
              ],
            },
            markArea: {
              data: [
                [{ xAxis: "1月" }, { xAxis: "2月" }],
                [{ xAxis: "6月" }, { xAxis: "7月" }],
              ],
            },
          },
        ],

3.2、线条控制:平滑(smooth)、风格(lineStyle)

series: [
          {
         ......
            smooth: true,
            lineStyle: {
              color: "green",
              type: "dotted",//solid、dotted、dashed
            },
          },
        ],

3.3、填充风格(areaStyle)

series: [
          {
         ......
            areaStyle: { color: "skyblue" },
          },
        ],

3.4、紧挨边缘(boundaryGap)、缩放(scale)

xAxis: {
          type: "category",
          data: xDataArr,
          boundaryGap: false,//紧挨边缘
        },
yAxis: {
          type: "value",
          scale:true,//脱离0值比例(缩放)
        },

3.5、堆叠图(stack)

一组数据基于另一组数据进行累加后展示,防止相近数据交叉,显得‘杂乱无章’

        series: [
          {
            name: "销量",
            type: "line",
            data: yDataArr,
            stack: "all",
            areaStyle: {},
          },
          {
            name: "other",
            type: "line",
            data: yDataArr2,
            stack: "all",
            areaStyle: {},
          },
        ],

四、散点图

将series中 type的值设置为"scatter",xAxis和yAxis的type都设置为"value"!

一般用于推断变量间的(正)相关性(eg:身高和体重的关系),也可以用在地图标注上!

<script>    
  var datas = [
        { gender: "male", height: 164.2, weight: 55.5 },
        { gender: "male", height: 167.5, weight: 59 },
        { gender: "male", height: 170.2, weight: 62.3 },
        { gender: "male", height: 176.6, weight: 76.3 },
        { gender: "male", height: 179.1, weight: 79.1 },
        { gender: "male", height: 177.8, weight: 84.1 },
        { gender: "male", height: 180.3, weight: 83.2 },
        { gender: "male", height: 180.3, weight: 83.2 },
        { gender: "male", height: 183, weight: 90.9 },
      ];
      var axisData = [];
      for (var i = 0; i < datas.length; i++) {
        var height = datas[i].height;
        var weight = datas[i].weight;
        var newArr = [height, weight];
        axisData.push(newArr);
      }
      let myChart = this.$echarts.init(document.getElementById("main1"));
      myChart.setOption({
        xAxis: {
          type: "value",
          scale: true,
        },
        yAxis: {
          type: "value",
          scale: true,
        },
        series: [
          {
            type: "scatter",
            data: axisData,//二维数组
          },
        ],
      });
</script>

4.1、气泡图:散点大小(symbolSize)、散点颜色(itemStyle.color)效果

        series: [
          {
            type: "scatter",
            data: axisData, //二维数组
            showEffectOn:'emphasis',
            rippleEffect:{
              scale:10
            },
            symbolSize: function (arg) {
              // BMI=体重(kg)/(身高m*身高m)  >28即为肥胖  >23.9即为超重
              var height = arg[0] / 100;
              var weight = arg[1];
              var Bmi = weight / (height * height);
              if (Bmi > 24) {
                return 24;
              }
              return 10;
            },
            itemStyle: {
              color: function (arg) {
                var height = arg.data[0] / 100;
                var weight = arg.data[1];
                var Bmi = weight / (height * height);
                if (Bmi > 24) {
                  return "red";
                }
                return "green";
              },
            },
          },
        ],

4.2、涟漪动画(type:effectScatter)效果

1、将type原本的值“scatter”设置为“effectScatter,每个散点会由内而外像水波一样荡漾开来!

2、想要鼠标划到对应散点上再出现水波纹:在type同级添加showEffectOn:'emphasis';

3、想要水波纹范围扩大:在type同级添加rippleEffect:{scale:10}

五、直角坐标系常用配置

直角坐标系图表:柱状图、折线图、散点图

5.1、网格:grid

作用:控制直角坐标系的布局和大小

        grid: {
          show: true,
          borderWidth: 10,
          borderColor: "gold",
          left: 20,
          top: 20,
          width: 300,
          height: 150,
        },
        xAxis: {.....},
        yAxis: {.....},

5.2、坐标轴:axis

(1)、类型type:

value:数值轴,会自动从目标数据中读取数据

category:类目轴,通过data设置类目数据

(2)、显示位置position

xAxis:可取值为top或者bottom

yAxis:可取值为left或者right

5.3、区域缩放:dataZoom

(1)、类型type:

slider:滑块滚动

inside:鼠标滚动

(2)、指明产生作用的轴

xAxisIndex:控制哪个x轴,值为数字

yAxisIndex:控制哪个y轴,值为数字

(3)、指明初始状态的缩放情况

start:起始百分比

end:结束百分比

     dataZoom: [
          {
            type: "slider",
            // type: "inside",//滚动条不显示,直接鼠标滚动
            xAxisIndex: 0,
          },
          {
            type: "slider",
            yAxisIndex: 0,
            start: 0,
            end: 80,
          },
        ],
        xAxis: {.....},
        yAxis: {.....},

六、饼图

将series中 type的值设置为"pie"即可!一般用于反映模块的占比情况!

6.1、显示数值(label.formatter)

  myChart.setOption({
        series: [
          {
            type: "pie",
            data: this.list,
            label: {
              show: true,
              formatter: function (arg) {
                return (
                  arg.name + "平台" + arg.value + "元\n" + arg.percent + "%"
                );
              },
            },
          },
        ],
      });

6.2、圆环(radius)

label: {......},
radius:['50%','75%']//[内圆半径,外圆半径]

6.3、南丁格尔图(roseType)、选中效果(selectedMode)

label: {......},           
roseType:'radius',//饼图的每个区域的半径和模块占比相关,
selectedMode:'multiple',//single:单个区域偏离原点、multiple:多个区域偏离原点

七、雷达图

将series中 type的值设置为"radar"即可!一般用于分析多个维度数据与标准数据的比对情况!

7.1、显示数值(label)、区域面积(areaStyle)

      let myChart = this.$echarts.init(document.getElementById("main1"));
      var dataMax = [
        { name: "易用性", max: 100 },
        { name: "功能", max: 100 },
        { name: "拍照", max: 100 },
        { name: "跑分", max: 100 },
        { name: "续航", max: 100 },
      ];
      myChart.setOption({
        radar: {
          indicator: dataMax, //配置各个维度的最大值,
        },
        series: [
          {
            type: "radar",
            label: {
              show: true,
            },
            areaStyle: {}, //给每个对象添加阴影区域
            data: [
              {
                name: "华为手机",
                value: [80, 90, 80, 82, 90],
              },
              {
                name: "中兴手机",
                value: [70, 82, 75, 70, 78],
              },
            ],
          },
        ],
      });

7.2、绘制类型(shape)

        radar: {
          indicator: dataMax, //配置各个维度的最大值,
          shape:'polygon',//polygon:多边形   circle:圆形
        },
        series: [......],

八、仪表盘图

将series中 type的值设置为"gauge"即可!一般用于分析进度把控以及数据范围的监测

      myChart.setOption({
        series: [
          {
            type: "gauge",
            data: [
              {
                value: 97,
                itemStyle: {
                  color: "pink",
                },
              }, //每一个对象就代表一个指针
              {
                value: 80,
                itemStyle: {
                  color: "green",
                },
              },
            ],
            min:50  //min  max 仪表盘数值范围
          },
        ],
      });

8.1、数值范围、多个指针、颜色

数值范围:min、max

多个指针:增加data中的数组元素;

颜色:(itemStyle.color)

九、通用配置

9.1、标题:title

(1)、文字样式:textStyle

(2)、标题边框:borderWidth、borderColor、borderRadius

(3)、标题位置:top、left、right、bottom

title: {
          text: "基础柱状图显示",
          textStyle: {
            color: "red",
          },
          borderWidth: 5,
          borderColor: "blue",
          borderRadius: 5,
          top: 10,
          left: 100,
        },
xAxis: {......},
yAxis: {......},

9.1、提示:tooltip

(1)、触发类型(trigger):item、axis

(2)、触发时机(triggerOn):mouseover、click

(3)、格式化(formatter):字符串模板、回调函数

title: {......},
tooltip: {
          trigger: "axis",
          triggerOn: "click",
          // formatter: "{b} 的成绩是 {c}",
          formatter: function(msg){
            console.log(msg[0]);
            return msg[0].name+'分数为'+msg[0].data
          },
        },
xAxis: {......},

9.1、工具按钮:toolbox

内置有导出图片、数据视图、动态类型切换、数据区域缩放、数据重置5个工具

title: {......},
toolbox: {
          feature: {
            saveAsImage: {},//导出图片
            dataView: {},//更改图表数据
            restore: {},//将更改的数据还原
            dataZoom: {},//框选指定区域“放大”(单独展示)
            magicType: {//类型切换:可以将原数据切换为不同类型的图表不同再画一个了
                type: ["bar", "line", "stack"],
            },
          },
        },
xAxis: {......},

9.1、图例:legend

legend用于筛选系列:它里面的data的值需要和series数组中该组数据的name值完全一致,否则无法显示。点击上面任意一个系列框框,下面就会留下对应的数据。

legend: {
          data: ["第一种", "第二种"],
        },
series: [
          {
            name: "第一种",
            type: "bar",
            data: this.list.map((d) => d.value),
          },
          {
            name: "第二种",
            type: "bar",
            data: yData2,
          },
        ],

备注:也可以用echarts实现矢量地图(type:'map'),不过一般都用百度地图(需要ak)

十、基础小结

nametype

use

柱状图bar                  比较不同类别之间的数据差异
折线图line                  分析数据随着时间的变化趋势
散点图scatter/effectScatter                  推断变量间的(正)相关性
饼图pie                  反映的占比情况
雷达图radar                  分析多个维度数据与标准数据的比对情况
仪表盘图gauge                  分析进度把控以及数据范围的监测

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

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

相关文章

正版软件 | Internet Download Manager 下载管理器

前言 IDM 是一个下载加速器&#xff0c;可将下载速度提高多达 8 倍&#xff0c;恢复、组织和安排下载。 30 天免费试用&#xff01;https://www.internetdownloadmanager.cc/ 新版本 Internet Download Manager v 6.40&#xff1a;添加了 Windows 11 兼容性。改进了媒体采集…

spring cloud config server源码学习(一)

文章目录 1. 注解EnableConfigServer2. ConfigServerAutoConfiguration2.1 ConditionalOnBean和ConditionalOnProperty2.2 Import注解2.2.1. EnvironmentRepositoryConfiguration.class2.2.2. CompositeConfiguration.class2.2.3. ResourceRepositoryConfiguration.class2.2.4.…

【高阶数据结构(七)】B+树, 索引原理讲解

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:高阶数据结构专栏⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多数据结构   &#x1f51d;&#x1f51d; 高阶数据结构 1. 前言2. B树讲解…

纽曼硬盘隐藏文件丢失怎么恢复?介绍几种有效的方法

纽曼硬盘作为存储设备中的佼佼者&#xff0c;以其高性能和稳定性受到了广大用户的青睐。然而&#xff0c;在使用过程中&#xff0c;有时我们可能会遇到一些意想不到的问题&#xff0c;比如隐藏文件的丢失。这对于依赖这些文件进行工作或生活的人来说无疑是一个巨大的困扰。那么…

电商api接口进行数据采集获取淘宝/天猫/京东/抖音多平台商品价格

在电商运营中&#xff0c;从品牌角度来看&#xff0c;品牌方通过电商数据采集API接口进行数据采集&#xff0c;获取多渠道商品价格信息的这一行为&#xff0c;能为品牌方带来诸多好处&#xff1a; 及时准确&#xff1a;API接口能为品牌提供实时数据&#xff0c;这意味着企业可…

常用目标检测预训练模型大小及准确度比较

目标检测是计算机视觉领域中的一项重要任务&#xff0c;旨在检测和定位图像或者视频中的目标对象。当人类观看图像或视频时&#xff0c;我们可以在瞬间识别和定位感兴趣的对象。目标检测的目标是使用计算机复制这种智能。 近年来&#xff0c;目标检测网络的发展日益成熟&#…

从git上拉取项目进行操作

1.Git的概念 Git是一个开源的分布式版本控制系统&#xff0c;可以有效、高速的处理从很小到非常大的项目版本管理。它实现多人协作的机制是利用clone命令将项目从远程库拉取到本地库&#xff0c;做完相应的操作后再利用push命令从本地库将项目提交至远程库。 2.Git的工作流程…

奇门遁甲古籍1《奇门秘术》(双页版)PDF电子书

《奇门秘术》 全书共102页 时间有限&#xff0c;仅上传部分图片&#xff0c;结缘私&#xff01;

OrangePi AIpro初体验,码农的第一台个人AI云电脑

介绍 香橙派联合华为精心打造&#xff0c;建设人工智能新生态 官网地址&#xff1a;Orange Pi AIpro Orange Pi官网-香橙派 Orange Pi论坛&#xff1a;Orange Pi论坛 昇腾社区&#xff1a;为开发者免费提供数百个代码参考样例昇腾社区-官网丨昇腾万里 让智能无所不及 学习…

C++模板方法模式

文章目录 1. 定义抽象基类&#xff08;Abstract Class&#xff09;2. 实现具体子类&#xff08;Concrete Class&#xff09;3. 使用模板方法模板方法模式的优点模板方法模式的应用场景注意事项实现示例抽象类&#xff08;模板&#xff09;具体实现类客户端代码 总结 模板方法模…

政府鼓励社会力量建设气膜体育场馆—轻空间

2023年12月1日&#xff0c;国家体育安全总局发布的《关于政协第十四届全国委员会第一次会议第00374号&#xff08;文体宣传类020号&#xff09;提案答复的函》中指出&#xff0c;2016年和2020年国务院发布的文件中均涉及推动气膜场馆建设及完善装配式建筑相关政策。下一步&…

Mysql | select语句导入csv后再导入excel表格

需求 从mysql数据库中导出数据到excel 解决方案 sql导出csv文件 sql SELECT col1,col2 FROM tab_01 WHERE col3 xxx INTO OUTFILE /tmp/result.csv FIELDS TERMINATED BY , ENCLOSED BY " LINES TERMINATED BY \n;csv文件导出excel文件 1、【数据】-【导入数据】 …

绕过防火墙过滤规则传输ICMP

ICMP和ICMPv6 ICMP和ICMPv6是Internet的主要协议。这些协议设计用于在数据包未到达目的地时进行连接测试和错误信令。接收ICMP消息让应用程序了解故障原因&#xff1a;数据包太大&#xff0c;没有可用路由等。 ICMP消息 出于不同的目的&#xff0c;ICMP [v6]消息由两个编码为…

仿冒、钓鱼、入侵……警惕邮件安全这些“坑”

为了保证用户对电子邮箱系统的安全使用&#xff0c;保证个人的隐私和财产的安全&#xff0c;我们呼吁每个人都要加强自己的网络安全意识&#xff0c;在对电子邮件进行处理的时候&#xff0c;要对钓鱼邮件进行认真的识别&#xff0c;同时还需要设定一个客户的密码来保证你的邮箱…

苹果手机怎么看海拔高度?快速掌握使用技巧

手机不仅能满足我们日常的通讯需求&#xff0c;还内置了许多实用的功能&#xff0c;其中包括查看海拔高度。无论是登山、徒步、骑行还是只是好奇地想要了解所在地的海拔高度&#xff0c;苹果手机都能够满足您的需求。苹果手机怎么看海拔高度&#xff1f;在本文中&#xff0c;我…

css3 笔记02

目录 01 过渡 02 rotate旋转 03 translate函数 04 真正的3D 05 动画 06 阴影 07 自定义字体库 08 自定义动画库 01 过渡 过渡属性的使用: transition-property:要过渡的css属性名 多个属性用逗号隔开 过渡所有属性就写all transition-duration: 过渡的持续时间 s秒 …

算法课程笔记——素数朴素判定埃氏筛法

算法课程笔记——素数朴素判定&埃氏筛法 sqrt返回浮点数&#xff0c;而且这样可防溢出 优化i*i会更快

XShell免费版的安装配置

官网下载 https://www.xshell.com/zh/free-for-home-school/ 下载地址 通过邮箱验证 新建会话 通过ssh登录树莓派 填写主机IP 点击用户身份验证 成功连接

计算机网络学习

文章目录 第一章信息时代的计算机网络因特网概述电路交换&#xff0c;分组交换&#xff0c;报文交换计算机网络的定义和分类计算机网络的性能指标常见的三种计算机网络体系计算机网络体系结构分层的必要性计算机网络体系结构分层思想举例计算机网络体系结构中的专用术语 第二章…

当传统文化遇上数字化,等级保护测评的必要性

第二十届中国&#xff08;深圳&#xff09;国际文化产业博览交易会5月23日在深圳开幕。本届文博会以创办20年为契机&#xff0c;加大创新力度&#xff0c;加快转型升级&#xff0c;着力提升国际化、市场化、专业化和数字化水平&#xff0c;不断强化交易功能&#xff0c;打造富有…