echarts 入门

工作中第一次碰到echarts,当时有大哥。二进宫没办法,只能搞定它。
感觉生活就是这样,不能解决的问题总是会反复出现。通过看视频、查资料,完成了工作要求。写一篇Hello World,进行备查。

基本使用

快速上手

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><meta charset="UTF-8"><title>ECharts快速上手</title>
</head>
<body>
<!-- 1. 创建echarts容器-->
<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript" src="./js/echarts.min.js"></script>
<script type="text/javascript">//2.  基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('main'));// 3. 指定图表的配置项和数据var option = {title: {text: 'ECharts 入门示例'},tooltip: {},legend: {data: ['销量']},xAxis: {data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']},yAxis: {},series: [{name: '销量',type: 'bar',data: [5, 20, 36, 10, 10, 20]}]};// 4. 使用刚指定的配置项和数据显示图表。myChart.setOption(option);
</script>
</body>
</html>

在这里插入图片描述
echarts 使用分为固定的四步
1 定义容器container
定义容器必须设置width\height,否则不会显示
2.初始化echarts对象myChart
3.创建选项option
4.echarts和option进行绑定

注意:
1. 每次修改option中的数据或配置后,必须重新调用setOption进行绑定;
2. option选项采用的是覆盖方式,在第N次修改的option,是对前面option选项的调整。(新option设置的,进行设置;没有指定的采用原来的配置项)
3. echarts 使用的难点在于option配置项太多,一定要养成勤查字典的习惯 官方地址
***

基础知识

常用图表和其对应的作用

series.type字段指定图表类型。 图表类型和作用说明如下:

type图表名称用途图片
line折线图展现数据的变化趋势在这里插入图片描述
bar柱状图图分类数据对比在这里插入图片描述
pie饼图不同类目的数据在总和中的占比在这里插入图片描述
scatter散点图展现数据的 x,y 之间的关系在这里插入图片描述
radar雷达图多属性分析在这里插入图片描述
map地图地理区域数据的可视化在这里插入图片描述

了解基础配置

需要了解的基本配置:series xAxis yAxis grid tooltip title legend color

  • series是一个数组,里面可以放多种图表(eg.多为柱状图、折线图和柱状图一起显示)。图表类型由对象里面的type字段指定, 根据要使用的type类型去series 配置选项 查找对应的配置项。

  • grid:直角坐标系内绘图网格。 常见的柱状图、折线图需要直角坐标系.通过left 、top等属性,设置图形距离容器的边距。
    containLabel:true //将刻度标签算作grid内

  • xAxis:直角坐标系x 轴

  • yAxis:直角坐标系 y 轴

  • title:标题组件
    下图1111即标题
    在这里插入图片描述

  • tooltip:提示框组件
    在这里插入图片描述
    trigger触发方式
    ‘item’:数据项图形触发,主要在散点图,饼图等无X\Y轴的图表中使用。
    ‘axis’:坐标轴触发,主要在柱状图,折线图等会使用X\Y轴的图表中使用。

  • legend:图例组件
    上方标志线条颜色和类型对应关系
    在这里插入图片描述

  • color:调色盘颜色列表
    指定 color:[‘red’]效果
    在这里插入图片描述

坐标系X轴、Y轴配置参数

坐标系X轴、Y轴配置参数完全一致 明确要修改的内容、
找到对应的配置参数,进行调整。
在这里插入图片描述

名称属性
轴线axisLine
刻度axisTick
标签axisLabel
网格线splitLine

boundaryGap

boundaryGap:xAxis子属性,坐标轴两边留白策略 true,这时候刻度只是作为分隔线,标签和数据点都会在两个刻度之间的带(band)中间。说实话,我也没看懂啥意思,通过下面的图对比看一下。
在这里插入图片描述

柱状图自动标注极值

option = {xAxis: {type: 'category',data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']},yAxis: {type: 'value'},series: [{data: [120, 200, 150, 80, 70, 110, 130],type: 'bar',markLine:{data:[{type: 'average', name:'平均值',lineStyle:{color: '#FFA022',width:2},label:{show:true,color:'#f00',shadowColor: 'transparent',position:'end',formatter: function(params){return '平均值:'+params.value}}}]}}]
};

在这里插入图片描述series-bar.markLine进行控制。

type作用
average平均值
min最小值
max最大值
median中位数

地图缩放处理

监听屏幕变化,调用缩放方法

    window.addEventListener('resize',()=>{console.log('处理窗口缩放时要处理的逻辑操作!');mychart.resize();});

地图使用指南

展示中国地图

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<!-- 1. 创建容器-->
<div class="map" style="width:500px;height:500px;">
</div>
<script type="text/javascript" src="./js/echarts.min.js"></script>
<script type="text/javascript">fetch('./json/china.json').then(res => res.json()).then(res => {let chinaJson = res//附加 注册地图echarts.registerMap('china', chinaJson)//1. 初始化dom 容器let mychart = echarts.init(document.querySelector('.map'))//2. 初始化选项let option = {series: [{type: 'map',map: 'china',roam: true,zoom: 1.2,itemStyle: {areaColor: '#6080f1',borderColor: '#ccc'},label: {show: true,color: '#fff'},emphasis: {itemStyle: {areaColor: '#0f3cde'}}}]}mychart.setOption(option)})</script>
</body>
</html>

在这里插入图片描述参照原来的一般规则(附加地图注册),就可以展示一张简单的地图。注意注册的名字必须和map value一致。

这个地图也太简单了,几乎没有功能。下面在地图上添加标注。

地图添加标注

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<!-- 1. 创建容器-->
<div class="map" style="width:500px;height:500px;">
</div>
<script type="text/javascript" src="./js/echarts.min.js"></script>
<script type="text/javascript">fetch('./json/china.json').then(res => res.json()).then(res => {let chinaJson = res//附加 注册地图echarts.registerMap('china', chinaJson)//2. 初始化dom 容器let mychart = echarts.init(document.querySelector('.map'))//3. 初始化选项let option = {geo: {tooltip: {show: true},map: 'china',roam: true},series: [{type: 'scatter',coordinateSystem: 'geo',geoIndex: 0,data: [{name: '上海',value: [121.48, 31.22, 11]},{name: '广州',value: [113.23, 23.16, 31]}],symbol: 'image://./images/ic_location.png',// symbol: 'image://http://api.tianditu.gov.cn/img/map/markerA.png',//'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'symbolSize: 30,label: {show: true,color: '#fff',fontSize: 18,formatter: function (params) {// console.error('params:' + JSON.stringify(params))return params.value[2]}}}]}//4. 进行绑定mychart.setOption(option)})</script>
</body>
</html>

在这里插入图片描述在地图上添加标记时,处理方式有所不同。

  1. 在option根属性下必须添加一个geo选项,个人理解就是添加地图坐标系
  2. series 数组下 type scatter,指定为散点图 coordinateSystem、geoIndex指定散点图坐标系。
  3. 其中的data 就是散点。 symbol 散点图标、label散点标签

地图下钻

名字起的有点专业了,就是点击中国地图山东版块后,展示山东行政区各个地级市的地图。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<!-- 1. 创建容器-->
<div class="map" style="width:500px;height:500px;">
</div>
<script type="text/javascript" src="./js/echarts.min.js"></script>
<script type="text/javascript">//1. 初始化dom 容器let mychart = echarts.init(document.querySelector('.map'))function clickMap(cityName) {// alert('Hello, World!');fetch(`./json/${cityName}.json`).then(res => res.json()).then(res => {let cityJson = res;echarts.registerMap(cityName, cityJson)let option = {geo: {map: cityName,roam: true},}mychart.setOption(option)})}fetch('./json/china.json').then(res => res.json()).then(res => {let chinaJson = res//附加 注册地图echarts.registerMap('china', chinaJson)mychart.on('click', function (params) {console.error('params:' + params.name) //新疆维吾尔自治区clickMap(params.name)})//2. 初始化选项let option = {geo: {tooltip: {show: true},map: 'china',roam: true},}mychart.setOption(option)})</script>
</body>
</html>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

前端知识杂记

css 特殊符号

.mainbox{display:flex;.column{flex:3;&:nth-child(2){ //1st节点选择器为  first-childflex:5}}
}

这样就可以实现个别元素的定制化。
& 代表单签的选择器。当嵌套定义样式时,&会替换父选择器。
:: 用于定义伪元素 eg. &::before{} &::after{}
: 用于定义伪类 eg. :hover

选择器

document.querySelector 可以获取文档中的第一个匹配的元素。
. class查询

# id查询

什么都不写,进行标签查询 eg. div

居中的典范代码

.login{width: 200px;height: 200px;position:absolute;top:50%;left:50%;transform: translate(-50%,-50%);background-color:#cccccc;
}

一般使用规则

  • 找一个参考样本 素材库
  • 在上面进行配置项调整,直到做出满意的效果,直接复制即可
  • 对于配置项存在的问题 查字典解决

问题总结

行政区边界下载
行政区边界在线访问 https://geo.datav.aliyun.com/areas_v3/bound/650102.json
650102 行政区域码

参考资料
pink ECharts数据可视化项目
echarts 官网

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索Theine:Python中的AI缓存新贵

文章目录 探索Theine&#xff1a;Python中的AI缓存新贵背景&#xff1a;为何选择Theine&#xff1f;Theine是什么&#xff1f;如何安装Theine&#xff1f;简单的库函数使用方法场景应用场景一&#xff1a;Web应用缓存场景二&#xff1a;分布式系统中的数据共享场景三&#xff1…

【亲测可行】ubuntu根目录空间不够,将其它盘挂载到/opt

文章目录 &#x1f315;缘起&#x1f315;从其它盘压缩出一个未分配的空间&#x1f319;从windows系统中压缩出个未分配的空间&#x1f319;从linux系统中压缩出个未分配的空间 &#x1f315;右键点击未分配的盘新建分区&#x1f315;查看分区&#x1f315;先将新分区挂载到/mn…

基于SpringBoot+Vue+Uniapp的仓库点单小程序的详细设计和实现

2. 详细视频演示 文章底部名片&#xff0c;联系我获取更详细的演示视频 3. 论文参考 4. 项目运行截图 代码运行效果图 代码运行效果图 代码运行效果图 代码运行效果图代码运行效果图 代码运行效果图 5. 技术框架 5.1 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发…

计算机网络(十一) —— 数据链路层

目录 一&#xff0c;关于数据链路层 二&#xff0c;以太网协议 2.1 局域网 2.2 Mac地址 2.3 Mac帧报头 2.4 MTU 三&#xff0c;ARP协议 3.1 ARP是什么 3.2 ARP原理 3.3 ARP报头 3.4 模拟ARP过程 3.5 ARP周边问题 四&#xff0c;NAT技术 4.1 NAT技术背景 4.2 NAT转…

图像分类-demo(Lenet),tensorflow和Alexnet

目录 demo(Lenet) 代码实现基本步骤&#xff1a; TensorFlow 一、核心概念 二、主要特点 三、简单实现 参数: 模型编译 模型训练 模型评估 Alexnet model.py train.py predict.py demo(Lenet) PyTorch提供了一个名为“torchvision”的附加库&#xff0c;其中包含…

GC1262E替代APX9262S/茂达芯片在笔记本和显卡风散热风扇中的应用分享

随着移动计算和高性能图形处理技术的不断进步&#xff0c;笔记本电脑和显卡的散热需求日益增加。散热风扇作为关键组件&#xff0c;其控制芯片的选择对系统性能和用户体验有着直接影响。本文将探讨芯麦的GC1262E芯片如何替代APX9262S/茂达芯片&#xff0c;应用于笔记本和显卡的…

ScriptableObject基本使用

使用方法 自定义类继承ScriptableObject 可以在类内部增加数据或者数据类&#xff0c;一般用于配置 注意事项 给继承ScriptableObject的类增加CreateAssetMenu特性。 CreateAssetMenu一般默认三个参数 第一个参数是父目录 第二个参数是父目录的子选项 第三个参数是可以…

SwiftUI 6.0(iOS 18)新增的网格渐变色 MeshGradient 解惑

概述 在 SwiftUI 中&#xff0c;我们可以借助渐变色&#xff08;Gradient&#xff09;来实现更加灵动多彩的着色效果。从 SwiftUI 6.0 开始&#xff0c;苹果增加了全新的网格渐变色让我们对其有了更自由的定制度。 因为 gif 格式图片自身的显示能力有限&#xff0c;所以上面的…

群晖使用frpc连接qbittorrent时会出现Unauthorized

跨域问题&#xff1a; 如果你是通过不同的网络或子网访问 qBittorrent Web UI&#xff0c;可能会引发跨域问题。尝试在 qBittorrent.conf 中添加以下设置&#xff0c;允许跨域访问&#xff1a; find / -name qBittorrent.conf WebUI\HostHeaderValidationfalse 成功

【微服务】springboot3 集成 Flink CDC 1.17 实现mysql数据同步

目录 一、前言 二、常用的数据同步解决方案 2.1 为什么需要数据同步 2.2 常用的数据同步方案 2.2.1 Debezium 2.2.2 DataX 2.2.3 Canal 2.2.4 Sqoop 2.2.5 Kettle 2.2.6 Flink CDC 三、Flink CDC介绍 3.1 Flink CDC 概述 3.1.1 Flink CDC 工作原理 3.2 Flink CDC…

2014年国赛高教杯数学建模D题储药柜的设计解题全过程文档及程序

2014年国赛高教杯数学建模 D题 储药柜的设计 储药柜的结构类似于书橱&#xff0c;通常由若干个横向隔板和竖向隔板将储药柜分割成若干个储药槽(如图1所示)。为保证药品分拣的准确率&#xff0c;防止发药错误&#xff0c;一个储药槽内只能摆放同一种药品。药品在储药槽中的排列…

PHP2-CTFWeb进阶wp-攻防世界13

CTFWeb进阶wp-攻防世界-PHP2 用了御剑和dirsearch扫描了一下发现什么也没扫描到&#xff0c;其它人好像有扫描到的&#xff0c;看了大佬的wp说有index.phps,去查了下。 phps 文件就是 php 的源代码文件&#xff0c;可以当作一个知识点记住&#xff0c;直接访问/index.phps,得…

基于SSM顶岗实习管理系统JAVA|VUE|Springboot计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解

源代码数据库LW文档&#xff08;1万字以上&#xff09;开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统&#xff1a;Window操作系统 2、开发工具&#xff1a;IntelliJ IDEA或者Eclipse 3、数据库存储&#xff1a…

维生素对于生活的重要性

在探索健康奥秘的旅途中&#xff0c;维生素作为人体不可或缺的微量营养素&#xff0c;扮演着至关重要的角色。它们虽不直接提供能量&#xff0c;却是酶促反应、细胞代谢、免疫功能乃至心理健康的基石。今天&#xff0c;让我们一同深入探讨人体所需补充的维生素&#xff0c;这些…

Springboot 整合 Java DL4J 实现医学影像诊断功能

&#x1f9d1; 博主简介&#xff1a;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编程&#xff0c;…

智能生成ppt软件哪个好?如何高效生成ppt?

想要快速制作出专业且吸引人的PPT演示文稿吗&#xff1f;ai智能生成ppt工具可以帮你实现这一目标。 无需复杂的设计技巧&#xff0c;也不必花费大量时间&#xff0c;只需几个简单的步骤&#xff0c;就能创造出令人印象深刻的演示文稿。下面是一份免费版教程&#xff0c;让你轻…

Word 首行缩进 2 字符怎么设置?具体步骤演示

在日常的文档编辑和排版中&#xff0c;首行缩进是一个非常常见且重要的排版需求。尤其是在中文文档中&#xff0c;首行缩进能够提高文章的美观度和可读性&#xff0c;使文章结构更加清晰。那 Word 首行缩进 2 字符怎么设置呢&#xff1f;下面就给大家展示具体的操作步骤。 设置…

JavaScript(Web APIs 作用和分类,DOM数是什么,document是什么,根据css选择器来获取DOM元素,修改DOM元素的方式,边量声明)

变量声明 变量声明有三个 var let 和 const建议&#xff1a; const 优先&#xff0c;尽量使用const&#xff0c;原因是&#xff1a; const 语义化更好 很多变量我们声明的时候就知道他不会被更改了&#xff0c;那为什么不用 const呢&#xff1f; 实际开发中也是&#xff0c;…

【计网】从零开始认识https协议 --- 保证安全的网络通信

在每个死胡同的尽头&#xff0c; 都有另一个维度的天空&#xff0c; 在无路可走时迫使你腾空而起&#xff0c; 那就是奇迹。 --- 廖一梅 --- 从零开始认识https协议 1 什么是https协议2 https通信方案2.1 只使用对称加密2.2 只使用非对称加密2.3 双方都使用非对称加密2.4 …

TCP/IP协议栈

一、TCP/IP和OSI模型的比较 相同点 两者都是以协议栈的概念为基础 协议栈中的协议彼此相互独立 下层对上层提供服务 不同点 OSI是先有模型&#xff1b;TCP/IP是先有协议&#xff0c;后有模型 OSI是国际标准&#xff0c;适用于各种协议栈&#xff1b;TCP/IP实际标准&…