一篇搞定ECharts的基本使用,赶快收藏起来学习吧~

news2024/11/18 7:49:27

准备工作

引入

声明一个有宽高的dDOM元素

echarts.init(DOM)

option配置对象

echarts.setOptions(option)

基础配置

option类似于一个容器,那么里面的属性就相当于组件:

xAxis(直角坐标系 X 轴)、yAxis(直角坐标系 Y 轴)、grid(直角坐标系底板)、angleAxis(极坐标系角度轴)、radiusAxis(极坐标系半径轴)、polar(极坐标系底板)、geo(地理坐标系)、dataZoom(数据区缩放组件)、visualMap(视觉映射组件)、tooltip(提示框组件)、toolbox(工具栏组件)、series(系列)等。

在这里插入图片描述

serise

type: ‘line’ | ‘bar’ | ‘pie’ | ‘scatter’ // 折线图、柱状图、饼图、散点图

name: 系列的名字

stack: 相同的值相加

option

option = {
    color: ['pink','red','green'],//设置线条颜色,数组形式
	title: {    //设置图标的标题
		text: ''
	},
	tooltip: {		//图表的提示框组件
		trigger: 'axis'		//触发方式  //item:散点图、饼图  //axis: 柱状图、折线图(坐标轴触发)
	},
    legend: {		//图例组件,若series里有name,则legend可以忽略
        data: ['邮件营销','联盟广告']
    },
    toolbox: {		//工具箱组件  可以另存为图片等功能
        feature: {
            saveAsImage:{}  //导出图片(saveAsImage) //数据视图(dataView)、动态类型切换(magicType)、数据区域缩放(dataZoom)、重置(restore)
        }
    },
    grid: {		//网格配置(与坐标)  可以控制线性图 柱状图 图表大小
        left: '3%',		//与DOM元素的left的距离
        right: '4%',
        bottom: '3%',
        show: true,		//是否显示直角坐标系网格
        containLabel: true		//是否显示y轴刻度标签
    },
    xAxis: {		//设置x轴的相关配置
        type: 'category',	//坐标轴类型
        boundaryGap: false,		//是否线条与坐标轴有缝隙
        data: ['周一','周二','周三']
    },
    yAxis: {
        type: 'value'		//为值
    },
    series: [		//系列图表配置 决定显示哪种类型的图表  //里有name,则legend里面的data值可以删掉
        {
            name: '邮件营销',	
            type: 'line',
            stack: '总量',	//相同的值,会数据堆叠
            data: [120, 132,101]
        },
        {
            name: '联盟广告',
            type: 'line',
            stack: '总量'
            data: [220, 137,191]
        }
    ]
}

在这里插入图片描述

定制柱状图
var option = {
	...
    tooltip: {
      ...
      axisPointer: {	// 坐标轴指示器配置项
          type: "cross",  //line(直线指示器)、shadow(阴影指示器)、none(无指示器)、cross(十字准星指示器)
          crossStyle: {
              color: "red",   //线的颜色
          },
      },
    },
	color: ["#b4fe98"],   // 调色盘,改变柱子占比的显示颜色
    xAxis: [{
        ...
        boundaryGap: false, // 去除轴内间距
        axisPointer: {    //指示器
          type: "line",   //line(直线指示器)、shadow(阴影指示器)、none(无指示器)
          
        },
        splitLine: {
          show: false, // 是否显示分隔线
        },
        axisLine: {
          lineStyle: {
            color: 'rgba(255,255,255,.2)', // X 轴线颜色
          },
        },
        axisLabel: {
          ...
          textStyle: {
            color: 'rgba(255,255,255,.6)', // 文本颜色
            fontSize: 12,
          },
          show: false, // 不显示刻度标签
        },
        }],
    yAxis: [{	
      ...
      axisTick: { show: false }, // 去除刻度
      axisLine: false, // 是否显示刻度线
      inverse: true, // 是否反向坐标轴
      min: 0,   //y轴最小值
      max: 8000,    //y轴最大值
      axisLabel: {
        formatter: "{value} 万",    //是刻度标签的内容格式器
      },
    },],
	series: {
        ...
        {
            name: ''
            barWidth: 30, // 设置柱子的宽度
            emphasis: {
              focus: "series", // 高亮的图表样式和标签样式
            },
            itemStyle: {
              color: "#a2d2ff", // 设置柱子的颜色
              borderRadius: [6, 0, 0, 6], // 设置圆角边框
              normal: {		// 设置拐点颜色以及边框
                color: '#0184d5',
                borderColor: 'rgba(221, 220, 107, .1)',
                borderWidth: 12,
              },
            },
            smooth: true, // 线是圆滑
            symbol: 'circle', // 设置拐点为小圆点
            symbolSize: 5, // 拐点大小
            showSymbol: false, // 开始不显示拐点, 鼠标经过显示
        	// 填充区域
        areaStyle: {
          normal: {
            // 渐变色,只需要复制即可
            color: new echarts.graphic.LinearGradient(0, 0, 0, 1,
              [
                {
                  offset: 0,	// 渐变色的起始颜色
                  color: 'rgba(1, 132, 213, 0.4)',
                },
                {
                  offset: 0.8,	// 渐变线的结束颜色
                  color: 'rgba(1, 132, 213, 0.1)',
                },
              ],
              false
            ),
            shadowColor: 'rgba(0, 0, 0, 0.1)',
          },
        },
        },
        showBackground: true, // 显示背景颜色
        backgroundStyle: {
            color: "#EAEAEA", // 柱子的背景颜色
        },
    }
}
定制线图
var option = {
	...
    tooltip: {
      trigger: 'axis',
      axisPointer: {
        lineStyle: {
          color: '#dddc6b',
        },
      },
    },
    legend: {
      top: '0%',
      textStyle: {
        color: 'rgba(255,255,255,.5)',
        fontSize: '12',
      },
    },
    xAxis: [{
        ...
        boundaryGap: false, // 去除轴内间距
        axisLine: {
          lineStyle: {
            color: 'rgba(255,255,255,.2)', // X 轴线颜色
          },
        },
        axisLabel: {
          ...
          textStyle: {
            color: 'rgba(255,255,255,.6)', // 文本颜色
            fontSize: 12,
          },
        },
      }],
    yAxis: [{	
      ...
      axisTick: { show: false }, // 去除刻度
        axisLine: {
          lineStyle: {
            color: 'rgba(255,255,255,.1)', // Y 轴线颜色
          },
        },
        axisLabel: {
          textStyle: {
            color: 'rgba(255,255,255,.6)', // 文字颜色
            fontSize: 12, // 文字大小
          },
        },
        splitLine: {
          lineStyle: {
            color: 'rgba(255,255,255,.1)', // 分割线颜色
          },
        },
    }],
	series: {
      ...
      {
        name: '播放量',
        type: 'line',
        smooth: true, // 线是圆滑
        symbol: 'circle', // 设置拐点为小圆点
        symbolSize: 5, // 拐点大小
        showSymbol: false, // 开始不显示拐点, 鼠标经过显示
        lineStyle: {  // 单独修改线的样式
          normal: {
            color: '#0184d5',
            width: 2,
          },
        },
        areaStyle: {	// 填充区域
          normal: {
            // 渐变色,只需要复制即可
            color: new echarts.graphic.LinearGradient(
              0,
              0,
              0,
              1,
              [
                {
                  offset: 0,
                  // 渐变色的起始颜色
                  color: 'rgba(1, 132, 213, 0.4)',
                },
                {
                  offset: 0.8,
                  // 渐变线的结束颜色
                  color: 'rgba(1, 132, 213, 0.1)',
                },
              ],
              false
            ),
            shadowColor: 'rgba(0, 0, 0, 0.1)',
          },
        },
        // 设置拐点颜色以及边框
        itemStyle: {
          normal: {
            color: '#0184d5',
            borderColor: 'rgba(221, 220, 107, .1)',
            borderWidth: 12,
          },
        },
    }
}
饼形图
option = {
  color: [
    "#7DCEA0",
    "#A9DFBF",
    "#F9E79F",
  ],
  title: {
    text: "全球新冠疫情部分数据",
    left: "center",
    textStyle: {
      color: "#fff",
    },
  },
  legend: {
    top: "bottom",
  },
    // 删去 series.itemStyle.borderRadius 配置
  label: {
     fontSize: 15,
  },
  labelLine: {
    // 连接到图表的线长度
    length: 10,
    // 连接到文字的线长度
    length2: 15,
  },
  series: [
    {
      name: "面积模式",
      type: "pie",
      radius: [50, 250], // 饼图的半径。
      center: ["50%", "50%"], // 饼图中心坐标
      roseType: "area", // 设置是否展示成南丁格尔图	//radius 圆心角不同 //area圆心角同
      itemStyle: {
        borderRadius: 8, //指定饼图扇形区块的内外圆角半径
      },
      data: [
        { value: 109, name: "巴林" },
        { value: 117, name: "马来西亚" },
        { value: 160, name: "新加坡" },
      ],
    },
  ],
};
散点图
  • tooltip.backgroundColor 是提示框浮层的背景颜色。

    图片描述

  • tooltip.formatter 是用来设置提示浮层内容显示的格式,它支持字符串模板回调函数两种形式。

    图片描述

  • xAxis.nameGap 用于设置坐标轴名称与轴线之间的距离,默认值为 15。

    图片描述

  • xAxis.nameTextStyle.fontsize 是用来设置坐标轴名称文字的字体大小,默认值为 12。

    图片描述

  • xAxis.nameLocation 是用来设置坐标轴名称显示位置,可选值有 start(开头)、middlecenter(居中)、end(末尾)。

    图片描述

  • visualMap 是视觉映射组件。

    图片描述

  • visualMap.left 和 visualMap.top 设置 visualMap 组件离容器左侧和顶部的距离。

    图片描述

  • visualMap.dimension 用来指定数据的哪个维度映射到视觉元素上。

    图片描述

    图片描述

  • visualMap.min 和 visualMap.max 用来设置 visualMap 组件允许的最小值和最大值。

    图片描述

  • visualMap.itemWidth 和 visualMap.itemHeight 设置 visualMap 组件图表的宽度和高度。

    图片描述

  • visualMap.calculable 设置是否显示拖拽用的手柄(手柄能拖拽调整选中范围)。

    图片描述

  • visualMap.precision 是设置数据展示的小数精度,默认为 0,无小数点。

    图片描述

  • visualMap.text 和 visualMap.textGap 用来设置 visualMap 组件图表上两端的文字和设置文字与图表之间的距离。

    图片描述

  • visualMap.inRange.symbolSize 设置选中范围内散点的大小。

    图片描述

  • visualMap.outOfRange.symbolSize 设置选中范围外散点的大小。

    图片描述

  • visualMap.outOfRange.color 设置选中范围外散点的颜色。

    图片描述

  • visualMap.controller 是 visualMap 组件中,控制器的 inRange、outOfRange 设置。

var option = {
  // 只给出修改部分的代码
  backgroundColor: "#2e4c6d",
  color: ["#ffC4E1", "#71DFE7"],
  legend: {
    data: ["晴天", "雨天"],
    textStyle: {
      color: "#fff",
      fontSize: 16,
    },
  },
  xAxis: {
    nameTextStyle: {
      color: "#fff",
      fontSize: 14,
    },
    axisLine: {
      lineStyle: {
        color: "#777",
      },
    },
    axisTick: {
      lineStyle: {
        color: "#777", // 刻度线的颜色
      },
    },
    axisLabel: {
      formatter: "{value}",
      textStyle: {
        color: "#fff",
      },
    },
  },
  yAxis: {
    name: "心情指数",
    nameTextStyle: {
      color: "#fff",
      fontSize: 16,
    },
    axisLine: {
      lineStyle: {
        color: "#777",
      },
    },
    axisTick: {
      lineStyle: {
        color: "#777",
      },
    },
    splitLine: {
      show: false,
    },
    axisLabel: {
      textStyle: {
        color: "#fff",
      },
    },
  },
  visualMap: [
    {
      left: "right", // 组件在图的右侧显示
      top: "40%", // 组件与顶部的距离
      dimension: 2, // 映射数据的维度
      itemWidth: 30, // 组件的宽度
      itemHeight: 120, // 组件的高度
      calculable: true, // 是否显示拖拽用的手柄
      precision: 0.1, // 数据展示的小数精度
      text: ["指数范围"], // 组件的文本内容
      textGap: 30, // 两端文字主体之间的距离
      textStyle: {
        color: "#fff",
      },
      controller: {
        inRange: {
          color: ["#77e4d4"],
        },
      },
    },
  ],
  series: [
    {
      name: "晴天",
    },
    {
      name: "雨天",
    },
  ],
};

异步数据加载

事件处理

myChart.on("事件名称", 回调函数);

常见事件:

  • click:点击鼠标时触发。
  • dblclick:在同一个元素上双击鼠标时触发。
  • mouseup:释放按下的鼠标键时触发。
  • mousedown:按下鼠标键时触发。
  • mousemove:当鼠标在一个节点内部移动时触发。
  • mouseover:鼠标进入一个节点时触发。
  • mouseout:鼠标离开一个节点时触发。
  • globalout:鼠标移出坐标系触发。
  • contextmenu:打开上下文菜单时被触发。

eg:

myChart.on("click", function (params) {
    console.log(params.name);  //可获得相应区域数据名
    window.open("https://www.lanqiao.cn/courses/?category=" + params.name);
});

一些交互组件

title
legend、

legend.orient 可以设置图例的布局朝向,其默认值为水平(horizontal),可以修改为垂直(vertical)。

通过 legend.toplegend.bottomlegend.leftlegend.right 设置图例距离容器上下左右的距离。

visualMap

visualMap 是视觉映射组件,用来进行视觉编码,也就是将数据映射到视觉元素。

通过 visualMap.minvisualMap.max 可以指定 visualMap 组件的最小值和最大值。

通过 visualMap.dimension 可以到指定数据的维度,也就是说使用哪个维度的数据去映射到 visualMap 组件上(其默认映射数据的最后一列)。数据的每一列为一个维度,可以看一看下面这个图。

图片描述

通过 visualMap.orient 设置 visualMap 组件的放置方向(其默认为垂直 vertical),可以设置为水平 horizontal。

通过 visualMap.topvisualMap.bottomvisualMap.leftvisualMap.right 可以设置 visualMap 组件距离容器上下左右的位置。

通过 visualMap.text 设置 visualMap 组件两端的文字。

通过 visualMap.calculable 设置是否显示拖拽手柄。

通过 visualMap.inRange 来定义选中范围中的视觉元素,可选的视觉元素中最常用的是 color,用于设置图元的颜色。

timeline

timeline 用于在多个 ECharts option 之间进行切换、播放等功能。

dataZoom

dataZoom 用于区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。

常见有两种类型,分为:

  • 内置型数据区域缩放组件(dataZoom-inside):内置在坐标系中,用户可以通过鼠标拖拽、鼠标滚轮、手指滑动(触屏上)来缩放或漫游坐标系。
  • 滑动条型数据区域缩放组件(dataZoom-slider):有单独的滑动条,用户可以在滑动条上进行缩放或漫游。

我们来说一说该组件常用的配置项。

通过 dataZoom.type 可以设置缩放组件的类型,一般值为 slider、inside。

通过 dataZoom.xAxisIndexdataZoom.yAxisIndex 可以设置组件控制的 x 轴和 y 轴。

通过 dataZoom.startdataZoom.end 可以设置数据窗口范围的开始百分比和结束百分比。

写在最后:这个是在蓝桥官网上学习所做的笔记,因此有些图片内容来自蓝桥官网

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

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

相关文章

关于udp能跨局域网传输的问题

UDP(用户数据报协议)以其独特的传输特性在多种应用场景中都有着极其重要的作用。然而,关于UDP是否能跨局域网(LAN)进行传输,以及这一传输过程中的优缺点,一直是网络技术领域讨论的热点。本文将详…

git基础命令(四)之分支命令

目录 基础概念git branch-r-a-v-vv-avv重命名分支删除分支git branch -h git checkout创建新的分支追踪远程分支同时切换到该分支创建新的分支并切换到该分支撤销对文件的修改,恢复到最近的提交状态:丢弃本地所有修改git checkout -h git merge合并指定分…

Windows系统安装VNC客户端结合内网穿透实现公网远程连接Deepin桌面

文章目录 1. 安装x11vnc2. 本地远程连接测试3. Deepin安装Cpolar4. 配置公网远程地址5. 公网远程连接Deepin桌面6. 固定连接公网地址7. 固定公网地址连接测试 x11vnc是一种在Linux系统中实现远程桌面控制的工具,它的原理是通过X Window系统的协议来实现远程桌面的展…

1688商品详情API接口采集商品上货

阿里巴巴1688平台并没有直接公开商品详情API接口供普通用户或开发者进行商品采集和上货。1688平台主要服务于批发和采购业务,其API服务通常面向的是有深度合作关系的商家或开发者,且需要经过申请和审核流程。 请求示例,API接口接入Anzexi58 …

Python Web开发记录 Day14:Django part8 订单管理

名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、数据库准备2、添加订单3、订单列表4、删除订…

C#集合:从字典到队列——探索数据结构核心

文章目录 C# 中的集合类型C# Dictionary 字典C# Hashtable:哈希表Hashtable 类中的属性Hashtable 类中的方法 C# SortedList:排序列表SortedList 类的中的属性SortedList 类的中的方法 C# Stack:堆栈Stack 类中的属性Stack 类中的方法 C# Que…

产品经理:前端实现网页防篡改,你会怎么做?

公众号:程序员白特,欢迎一起交流学习~ 如果产品经理要求系统中某个页面的输入框做防止篡改处理,你会怎么做呢? 需求梳理 首先,什么是防篡改? 简单来说,就是用户输入input框值,我们…

静态HTML5接入海康websocket视频流|海康ws视频流接入H5页面

引言 海康提供了vue实现插件播放视频的实例,实现取流失败了之后重新获取新的流播放视频,但是在很多情况下需要在静态HTML项目中进行视频的播放,于是引出此文。 海康开放平台SDK下载地址:https://open.hikvision.com/download/5c6…

Python使用 k 均值对遥感图像进行语义分割

本篇文章介绍K-means语义分割来估计 2000 年至 2023 年咸海水面的变化 让我们先看一下本教程中将使用的数据。这是同一地区的两张 RGB 图像,间隔 23 年,但很明显地表特性和大气条件(云、气溶胶等)不同。这就是为什么我决定训练两个独立的 k-Means 模型,每个图像一个。 首…

vue3 element plus 上传下载

文章目录 上传下载 上传 /* html */ <el-upload v-model"fileId" class"avatar-uploader" ref"exampleUploadRef" :file-list"fileList" :show-file-list"false" action"/ys-three-year/ThreeReport/uploadFile&q…

d3dcompiler_47.dll是什么,软件游戏报错d3dcompiler_47.dll缺失怎么修复?

当你在运行某些程序或游戏时出现"找不到d3dcompiler_47.dll"的错误提示时&#xff0c;不要慌张&#xff01;这是一个常见的问题&#xff0c;但有多种有效的解决办法可以帮助你修复这个文件丢失的情况。今天就来教大家d3dcompiler_47.dll文件丢失的多种解决办法。 一.…

旅游管理系统|基于SpringBoot+ Mysql+Java+Tomcat技术的旅游管理系统设计与实现(可运行源码+数据库+设计文档+部署说明+视频演示)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 用户功能 管理员功能登录前台功能效果图 系统功能设计 数据库E-R图设计 lunwen参考 …

【LeetCode每日一题】310. 最小高度树

文章目录 [310. 最小高度树](https://leetcode.cn/problems/minimum-height-trees/)思路&#xff1a;拓扑排序代码&#xff1a; 310. 最小高度树 思路&#xff1a;拓扑排序 首先判断节点数量n&#xff0c;如果只有一个节点&#xff0c;则直接返回该节点作为最小高度树的根节点…

【学习心得】Python数据分析的基本思路

一、什么是数据分析&#xff1f; 数据分析是指通过一些方法&#xff0c;对一些数据进行分析&#xff0c;从中提取出有价值的信息并形成结论进行展示。 &#xff08;1&#xff09;一些方法 数学和统计学方法&#xff1a;例如回归分析、聚类分析、主成分分析、时间序列分析等&a…

软件测试面试之支付系统测试

本篇文章主要从支付系统设计入手进行测试&#xff0c;针对界面功能测试容易忽略但是又十分重要的逻辑。关于支付密码、验证码、银行卡绑定等等能从界面入手测试的&#xff0c;下文也不讲述&#xff0c;如果有兴趣可以留言&#xff0c;后面整理。 1、APP支付结果查询是否合理 假…

广州地铁线路规划

使用python实现后端功能&#xff0c;由于地铁图需要进行展示&#xff0c;svg图需要花费比较多的时间&#xff0c;这里使用了 MetroFlow 库构建的地铁地图编辑器&#xff0c;可以在画布上构建矢量图&#xff0c;实现站点路线的创建。 用法&#xff1a; 打包好后完整目录&#x…

物联网数据驾驶舱

在信息化时代&#xff0c;数据已经成为驱动企业发展的核心动力。特别是在物联网领域&#xff0c;海量数据的实时采集、分析和监控&#xff0c;对于企业的运营决策和业务优化具有至关重要的作用。HiWoo Cloud作为领先的物联网云平台&#xff0c;其数据监控功能以“物联网数据驾驶…

2024年,AI赚钱的十大版块优势解析与适合人群

随着科技的飞速发展,AI技术正逐渐渗透到我们生活的方方面面。2024年,将是AI赚钱的黄金时期。那么,如何利用AI技术实现财富增长呢?本文将为您详细解析十大赚钱版块的优势及适合从事的人群,并通过一个实际案例,带您领略AI赚钱的无限魅力。 一、运用AI写作工具提供写作服务…

每日五道java面试题之mybatis篇(四)

目录&#xff1a; 第一题. 映射器#{}和${}的区别第二题. 模糊查询like语句该怎么写?第三题. 在mapper中如何传递多个参数?第四题. Mybatis如何执行批量操作第五题 MyBatis框架适用场景 第一题. 映射器#{}和${}的区别 #{}是占位符&#xff0c;预编译处理&#xff1b;${}是拼接…

自动化部署fuel环境

自动化部署fuel环境流程图 自定义NAT网络 一、在物理机上面配置 &#xff08;1&#xff09;创建名为“management”的NAT网络 # vim /usr/share/libvirt/networks/management.xml <network> <name>management</name> <bridge name"virbr1"/&…