echarts 入门

news2024/10/12 22:07:20

工作中第一次碰到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-child
			flex: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.coloradmin.cn/o/2208892.html

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

相关文章

QNAP新手必看!轻松搞定反向代理设置

反向代理是一种服务器配置&#xff0c;允许你通过一个域名或者IP地址来访问不同的内部应用服务。在QNAP NAS上配置反向代理可以提升应用程序的安全性和可访问性。 准备工作 确保QNAP NAS已连接网络并有公网IPv4/IPv6。 确认已启用Web服务 步骤 1&#xff1a;启用Web服务 登…

相机光学(三十九)——光学暗角与机械暗角

1.什么是暗角 在玩摄影一段时间,拍摄一定数量的照片之后,每个人都会不可避免地遇上一个新问题,那就是暗角现象。所谓暗角,是指在拍摄亮度均匀的场景时,画面的四角却出现与实际景物不符的、亮度降低的现象,又被称为“失光“。 2.暗角的成因 (1)边角的成像光线与镜头光轴…

【智能控制】第2章 专家系统,专家控制,模糊关系,模糊推理,专家PID控制

目录 2.1 专家系统 2.1.1 专家系统概述 2.1.2 专家系统构成 2.1.3 专家系统的建立 1&#xff0e;知识库 2&#xff0e;推理机 3&#xff0e;知识的表示 4&#xff0e;专家系统开发语言 5&#xff0e;专家系统建立步骤 第二节 专家控制 2&#xff0e;功能 3 与专家…

三、账号密码存储

使用Playfers存储 Unity本地持久化类Playerprefs使用详解 - PlaneZhong - 博客园 (cnblogs.com) 一、登陆界面切换 1、登陆界面的脚本&#xff08;机制类脚本&#xff09; 在这个UI上挂载一个脚本LoginWnd 先声明一下这个脚本&#xff0c;拖拽 2、在登录模块中调用 这里的l…

华为全联接大会2024 | 聚焦运维智能化,麒麟信安分享“基于大模型的新一代智能运维平台”

2024年9月19日至21日&#xff0c;以“共赢行业智能化”为主题的华为全联接大会2024在上海世博中心盛大召开。麒麟信安受邀出席大会&#xff0c;与全球的思想领袖、商业精英、技术专家和合作伙伴&#xff0c;共同探讨智能化、数字化技术赋能千行万业&#xff0c;把握新机遇&…

第十五章 Java多线程--线程池

目录 一、线程池基础概念 常见的线程池类型&#xff1a; 创建线程池的例子&#xff1a; 注意事项&#xff1a; 二、线程池使用场景 三、JDK自带的构建线程池的方式 1 newFixedThreadPool 2 newSingleThreadExecutor 3 newCachedThreadPool 4 newScheduleThreadPool …

震撼!一句话就让 AI 帮你做 UI 测试,多模态测试智能体 AUITestAgent 横空出世!

美团到店研发平台携手复旦大学周扬帆教授团队&#xff0c;共同开发了智能化终端测试工具AUITestAgent。该工具是第一个能够基于自然语言测试用例&#xff0c;自动化完成终端UI测试驱动、校验全流程的智能化测试工具。仅需输入自然语言形式的测试需求&#xff0c;AUITestAgent通…

福建谷器参加泉州市中小企业数字化转型试点工作启动会

为进一步加快推动试点城市工作,10月9日,泉州市产业数字化转型工作现场会暨2024年中小企业数字化转型试点工作启动会成功举办。出席本次会议的有福建省工业和信息化厅副厅长许永西、泉州市人民政府副市长雷连鸣等领导,及来自国家工业信息安全发展研究中心、中国工业互联网研究院…

newlibc memcpy 存在问题

背景 sdk 中发现 memcpy 函数没有达到预期&#xff0c;执行后&#xff0c;目的地址与源地址中的内容不一致。 复现方法 通过单步调试 memcpy 汇编代码&#xff0c;发现使用了 ldrh 指令&#xff0c;该指令在对 uncacheable memory 同时该 memory 非对齐的情况下&#xff0c;…

高性能计算平台(HPC)如何选型

选型高性能计算平台&#xff08;HPC&#xff09;非常复杂&#xff0c;需要考针对行业的痛点等多个因素进行考虑&#xff0c;来确保平台系统能满足特定行业和应用的需求。下面为大家列举了几个方面&#xff0c;大家可以参考。 1.计算需求 首先需要了解你需要处理的数据类型、计算…

如何给照片加文字?几个方法帮助你给照片轻松填字

如何给照片加文字&#xff1f;几个方法帮助你给照片轻松填字 给照片添加文字是常见的图片处理需求&#xff0c;尤其是在社交媒体、海报设计和个人相册制作中。以下是5款常用软件&#xff0c;它们能够帮助你轻松在照片上添加文字&#xff0c;满足不同层次的用户需求&#xff0c…

os镜像包一键安装

5、解压后点击运行旗胜PE维护系统。 6、插入U盘识别到U盘后点那个蓝色的制作启动U盘就可以了&#xff0c;设置用默认的就行不用改。 7、正在制作启动U盘中大约5分钟左右。 8、出现这个页面就制作完成了&#xff0c;可以关掉这个软件了 9、打开启动U盘就可以看到里面有os文件夹跟…

Python酷库之旅-第三方库Pandas(145)

目录 一、用法精讲 656、pandas.Timestamp.resolution属性 656-1、语法 656-2、参数 656-3、功能 656-4、返回值 656-5、说明 656-6、用法 656-6-1、数据准备 656-6-2、代码示例 656-6-3、结果输出 657、pandas.Timestamp.second属性 657-1、语法 657-2、参数 6…

Unity XR PICO 手势交互 Demo APK

效果展示 用手抓取物体&#xff0c;调整物体位置和大小等 亲测pico4 企业版可用&#xff0c; 其他设备待测试 下载链接&#xff1a; 我标记的不收费 https://download.csdn.net/download/qq_35030499/89879333

可观察性的三大支柱:统一日志、指标和跟踪

作者&#xff1a;来自 Elastic Elastic Observability Team 了解遥测信号&#xff0c;以便做出更好的决策、提高性能并增强客户体验。 多年来&#xff0c;遥测信号已经发生了重大变化 —— 如果你眨眼&#xff0c;你可能会错过它。事实上&#xff0c;关于可观察性的许多常识都…

DBA | 如何将 .mdf 与 .ldf 的数据库文件导入到SQL Server 数据库中?

[ 知识是人生的灯塔&#xff0c;只有不断学习&#xff0c;才能照亮前行的道路 ] 原文链接&#xff1a;DBA | 如何将 .mdf 与 .ldf 的数据库文件导入到SQL Server 数据库中? 如何将 (.mdf) 和 (.ldf) 的SQL Server 数据库文件导入到当前数据库中? Step 1.登录到 Sql Server 服…

“云计算+高职”:VR虚拟仿真实训室的发展前景

随着科技的飞速进步&#xff0c;云计算与虚拟现实&#xff08;VR&#xff09;技术的结合正在深刻改变着教育领域&#xff0c;尤其是在高等职业教育中&#xff0c;这一融合为实训教学带来了革命性的变革。VR虚拟仿真实训室作为这一变革的前沿阵地&#xff0c;正展现出广阔的发展…

PCL点云处理之求法向量

求法向量干什么&#xff1f;将点渲染成面 1、一个点垂直于一个曲线的切线叫法线 2、在点云中取一块区域&#xff0c;用最小二乘将区域中的点云拟合成一个面&#xff08;贴合在曲面上的一个切面&#xff09;在相近的区域计算出n个这样的面&#xff0c;用这个面求出法向量&#…

LibreOffice SDK是LibreOffice软件的开发工具包

LibreOffice SDK是LibreOffice软件的开发工具包&#xff0c;它提供了一系列工具和库&#xff0c;使得开发者可以基于LibreOffice进行扩展或开发新的应用程序。以下是对LibreOffice SDK的详细介绍&#xff1a; 一、下载与安装 下载地址&#xff1a; 可以在LibreOffice的官方网站…

警惕!.rmallox勒索病毒:加密你的文件,勒索你的钱包

导言 在数字化时代&#xff0c;网络安全威胁层出不穷&#xff0c;其中勒索病毒已成为企业和个人用户面临的一大挑战。特别是.rmallox勒索病毒&#xff0c;以其复杂的加密算法和广泛的传播方式&#xff0c;给数据安全带来了严重威胁。本文91数据恢复将详细介绍.rmallox勒索病毒…