echarts学习文档

news/2024/9/25 4:37:06/

echarts学习文档

  • 基础概念
    • 初始化
    • 样式(颜色)
    • 数据集(dataset)
    • 数据转换(
    • 数据转换(transform)

基础概念

项目里使用npm安装echarts依赖包

npm install echarts

在要使用的地方引入

import * as echarts from 'echarts'

初始化

echrats提供的初始化接口是echarts.init
初始化方法里面要绑定容器 ,容器的概念其实就是一个又固定宽高的html节点。初始化的时候传入该节点(doucument.getElementById(‘xxx’));

 const chart = echarts.init(document.getElementById('bingchart'))

1.如果绑定的节点没有宽度高度,没办法渲染出图表。图表的宽高默认是绑定节点的宽高。没有指定宽高的报错如下
在这里插入图片描述
[ECharts] Can’t get DOM width or height. Please check dom.clientWidth and dom.clientHeight. They should not be 0.For example, you may need to call this in the callback of window.onload.

2.如果想要图表响应页面进行变化图表也有提供方法 给页面添加resize事件并调用echarts实例的方法

 window.addEventListener('resize', function() {chart.resize();//什么都不传默认图表大小 也可以传宽高/*chart.resize({width: 800,height: 400});*/});

3.假设页面中存在多个标签页,每个标签页都包含一些图表。当选中一个标签页的时候,其他标签页1的内容在dom中被移除,当用户再选中这些标签页的时候,就会发现图表不见了。
在容器节点被销毁时。勇敢页销毁图表

chart.dispose ()

样式(颜色)

1.颜色可以用一个数组写在配置项外边 然后再配置的时候引入这个数组。(可以定义一个,也可以定义多个)
2.颜色也可以写在数据集里[{value:xxx,color:‘red’}]
3.可以通过配置项设置一些别的颜色如高亮颜色之类的

option = {series: {type: 'scatter',// 普通样式。itemStyle: {// 点的颜色。color: 'red'},label: {show: true,// 标签的文字。formatter: 'This is a normal label.'},// 高亮样式。emphasis: {itemStyle: {// 高亮时点的颜色。color: 'blue'},label: {show: true,// 高亮时标签的文字。formatter: 'This is a emphasis label.'}}}
};

数据集(dataset)

数据集和xAxis平级
数据集是专门用来管理数据的组件。虽然每个系列都可以在series.data中设置数据。但是数据集可以被多个组件复用。
数据集的source可以是数组形式也可以是对象数组格式
1.数组形式下0位置会被忽略渲染 它作为渲染的一个参照 不作为数值渲染
2.对象数组形式下都会渲染,需要配置一个dimensions 完成映射

 dataset: {// 用 dimensions 指定了维度的顺序。直角坐标系中,如果 X 轴 type 为 category,// 默认把第一个维度映射到 X 轴上,后面维度映射到 Y 轴上。// 如果不指定 dimensions,也可以通过指定 series.encode// 完成映射,参见后文。dimensions: ['product', '2015', '2016', '2017'], //可以是数组也可以是对象形式的/*dimensions: [{ name: 'score' },// 可以简写为 string ,表示 dimension name 。'amount',// 可以在 type 中指定维度类型。{ name: 'product', type: 'ordinal' }],}*/source: [{ product: 'Matcha Latte', '2015': 43.3, '2016': 85.8, '2017': 93.7 },{ product: 'Milk Tea', '2015': 83.1, '2016': 73.4, '2017': 55.1 },{ product: 'Cheese Cocoa', '2015': 86.4, '2016': 65.2, '2017': 82.5 },{ product: 'Walnut Brownie', '2015': 72.4, '2016': 53.9, '2017': 39.1 }]},

3.使用encode完成映射

// 在任何坐标系和系列中,都支持:
encode: {// 使用 “名为 product 的维度” 和 “名为 score 的维度” 的值在 tooltip 中显示tooltip: ['product', 'score']// 使用 “维度 1” 和 “维度 3” 的维度名连起来作为系列名。(有时候名字比较长,这可以避免在 series.name 重复输入这些名字)seriesName: [1, 3],// 表示使用 “维度2” 中的值作为 id。这在使用 setOption 动态更新数据时有用处,可以使新老数据用 id 对应起来,从而能够产生合适的数据更新动画。itemId: 2,// 指定数据项的名称使用 “维度3” 在饼图等图表中有用,可以使这个名字显示在图例(legend)中。itemName: 3
}// 直角坐标系(grid/cartesian)特有的属性:
encode: {// 把 “维度1”、“维度5”、“名为 score 的维度” 映射到 X 轴:x: [1, 5, 'score'],// 把“维度0”映射到 Y 轴。y: 0
}// 单轴(singleAxis)特有的属性:
encode: {single: 3
}// 极坐标系(polar)特有的属性:
encode: {radius: 3,angle: 2
}// 地理坐标系(geo)特有的属性:
encode: {lng: 3,lat: 2
}// 对于一些没有坐标系的图表,例如饼图、漏斗图等,可以是:
encode: {value: 3
}

数据转换(

var option = {dataset: [{// 这个 dataset 的 index 是 `0`。source: [['Product', 'Sales', 'Price', 'Year'],['Cake', 123, 32, 2011],['Cereal', 231, 14, 2011],['Tofu', 235, 5, 2011],['Dumpling', 341, 25, 2011],['Biscuit', 122, 29, 2011],['Cake', 143, 30, 2012],['Cereal', 201, 19, 2012],['Tofu', 255, 7, 2012],['Dumpling', 241, 27, 2012],['Biscuit', 102, 34, 2012],['Cake', 153, 28, 2013],['Cereal', 181, 21, 2013],['Tofu', 395, 4, 2013],['Dumpling', 281, 31, 2013],['Biscuit', 92, 39, 2013],['Cake', 223, 29, 2014],['Cereal', 211, 17, 2014],['Tofu', 345, 3, 2014],['Dumpling', 211, 35, 2014],['Biscuit', 72, 24, 2014]]// id: 'a'},{// 这个 dataset 的 index 是 `1`。// 这个 `transform` 配置,表示,此 dataset 的数据,来自于此 transform 的结果。transform: {type: 'filter',config: { dimension: 'Year', value: 2011 }}// 我们还可以设置这些可选的属性: `fromDatasetIndex` 或 `fromDatasetId`。// 这些属性,指定了,transform 的输入,来自于哪个 dataset。例如,// `fromDatasetIndex: 0` 表示输入来自于 index 为 `0` 的 dataset 。又例如,// `fromDatasetId: 'a'` 表示输入来自于 `id: 'a'` 的 dataset。// 当这些属性都不指定时,默认认为,输入来自于 index 为 `0` 的 dataset 。},{// 这个 dataset 的 index 是 `2`。// 同样,这里因为 `fromDatasetIndex` 和 `fromDatasetId` 都没有被指定,// 那么输入默认来自于 index 为 `0` 的 dataset 。transform: {// 这个类型为 "filter" 的 transform 能够遍历并筛选出满足条件的数据项。type: 'filter',// 每个 transform 如果需要有配置参数的话,都须配置在 `config` 里。// 在这个 "filter" transform 中,`config` 用于指定筛选条件。// 下面这个筛选条件是:选出维度( dimension )'Year' 中值为 2012 的所有// 数据项。config: { dimension: 'Year', value: 2012 }}},{// 这个 dataset 的 index 是 `3`。transform: {type: 'filter',config: { dimension: 'Year', value: 2013 }}}],series: [{type: 'pie',radius: 50,center: ['25%', '50%'],// 这个饼图系列,引用了 index 为 `1` 的 dataset 。也就是,引用了上述// 2011 年那个 "filter" transform 的结果。datasetIndex: 1},{type: 'pie',radius: 50,center: ['50%', '50%'],datasetIndex: 2},{type: 'pie',radius: 50,center: ['75%', '50%'],datasetIndex: 3}]
};

数据转换(transform)

版本5点多开始支持这个 ,通过已有的数据集生成新的数据集 特点有很多
1.把数据分成多份用不同的饼图展现
2.进行一些数据统计运算,并展示结果
3.用某学数据可视化算法处理数据,并展示结果
4.数据排序
5.去除或直选择数据项
基础使用的代码如下

var option = {dataset: [{// 这个 dataset 的 index 是 `0`。source: [['Product', 'Sales', 'Price', 'Year'],['Cake', 123, 32, 2011],['Cereal', 231, 14, 2011],['Tofu', 235, 5, 2011],['Dumpling', 341, 25, 2011],['Biscuit', 122, 29, 2011],['Cake', 143, 30, 2012],['Cereal', 201, 19, 2012],['Tofu', 255, 7, 2012],['Dumpling', 241, 27, 2012],['Biscuit', 102, 34, 2012],['Cake', 153, 28, 2013],['Cereal', 181, 21, 2013],['Tofu', 395, 4, 2013],['Dumpling', 281, 31, 2013],['Biscuit', 92, 39, 2013],['Cake', 223, 29, 2014],['Cereal', 211, 17, 2014],['Tofu', 345, 3, 2014],['Dumpling', 211, 35, 2014],['Biscuit', 72, 24, 2014]]// id: 'a'},{// 这个 dataset 的 index 是 `1`。// 这个 `transform` 配置,表示,此 dataset 的数据,来自于此 transform 的结果。transform: {type: 'filter',config: { dimension: 'Year', value: 2011 }}// 我们还可以设置这些可选的属性: `fromDatasetIndex` 或 `fromDatasetId`。// 这些属性,指定了,transform 的输入,来自于哪个 dataset。例如,// `fromDatasetIndex: 0` 表示输入来自于 index 为 `0` 的 dataset 。又例如,// `fromDatasetId: 'a'` 表示输入来自于 `id: 'a'` 的 dataset。// 当这些属性都不指定时,默认认为,输入来自于 index 为 `0` 的 dataset 。},{// 这个 dataset 的 index 是 `2`。// 同样,这里因为 `fromDatasetIndex` 和 `fromDatasetId` 都没有被指定,// 那么输入默认来自于 index 为 `0` 的 dataset 。transform: {// 这个类型为 "filter" 的 transform 能够遍历并筛选出满足条件的数据项。type: 'filter',// 每个 transform 如果需要有配置参数的话,都须配置在 `config` 里。// 在这个 "filter" transform 中,`config` 用于指定筛选条件。// 下面这个筛选条件是:选出维度( dimension )'Year' 中值为 2012 的所有// 数据项。config: { dimension: 'Year', value: 2012 }}},{// 这个 dataset 的 index 是 `3`。transform: {type: 'filter',config: { dimension: 'Year', value: 2013 }}}],series: [{type: 'pie',radius: 50,center: ['25%', '50%'],// 这个饼图系列,引用了 index 为 `1` 的 dataset 。也就是,引用了上述// 2011 年那个 "filter" transform 的结果。datasetIndex: 1},{type: 'pie',radius: 50,center: ['50%', '50%'],datasetIndex: 2},{type: 'pie',radius: 50,center: ['75%', '50%'],datasetIndex: 3}]
};

–未完待续–


http://www.ppmy.cn/news/1462087.html

相关文章

2024彩虹医械维修培训邀请

INVITATION 2024年5月20日 时间/TIME 地点/SITE (西安、成都) 随着我国医疗水平的提升,为适应现代医疗的发展步伐,提升医疗服务水平,各个医院在当下都开始重视医疗器械的维修。在医械行业,由于医疗器械…

Kerberos-梳理

服务端: yuminstall-ykrb5-server vim/var/kerberos/krb5kdc/kdc.conf [kdcdefaults] kdc_ports=88 kdc_tcp_ports=88 [realms] HADOOP.COM={#master_key_type=aes256-cts acl_file=/var/kerberos/krb5kdc/kadm5.acl dict_file=/usr/share/dict/words admin_keytab=/var/kerbe…

函数栈帧的创建和销毁(详细理解)

🎁个人主页:我们的五年 🔍系列专栏:c语言课程学习 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 问题: 1.ebp,esp两个寄存器用来维护函数栈帧 2.main函数也一个函数&#…

jsp 实验12 servlet

一、实验目的 掌握怎样在JSP中使用javabean 二、实验项目内容&#xff08;实验题目&#xff09; 编写代码&#xff0c;掌握servlet的用法。【参考课本 上机实验1 】 三、源代码以及执行结果截图&#xff1a; 源代碼&#xff1a; inputVertex.jsp&#xff1a; <% page lang…

2024年4月12日饿了么春招实习试题【第三题】-题目+题解+在线评测,2024.4.12,饿了么机试【Kruskal 算法, 最小生成树】

2024年4月12日饿了么春招实习试题【第三题】-题目题解在线评测&#xff0c;2024.4.12&#xff0c;饿了么机试 &#x1f3e9;题目一描述&#xff1a;样例1样例2解题思路一&#xff1a;[Kruskal 算法](https://baike.baidu.com/item/%E5%85%8B%E9%B2%81%E6%96%AF%E5%8D%A1%E5%B0%…

AIGC时代已至,你准备好抓住机遇了吗?

一、行业前景 AIGC&#xff0c;即人工智能生成内容&#xff0c;是近年来人工智能领域中发展迅猛的一个分支。随着大数据、云计算、机器学习等技术的不断进步&#xff0c;AIGC已经取得了显著的成果&#xff0c;并且在广告、游戏、自媒体、教育、电商等多个领域实现了广泛应用。…

代码复现|Demucs Music Source Separation

一、背景介绍 Demucs是一个开源的音源分离项目。 Demucs在算法层面前后经历了三次大版本的进化&#xff0c;最原始的V1版本是&#xff1a;编解码LSTM。具体算法原理图如下所示。该版本在时域进行音源分离。关于阅读笔记请点击这篇文章。 V1版本原理图 V2版本是同时使用时域和频…

基于C++和OpenCv对视频进行抽帧

下列代码演示了从某.MP4视频文件内以一秒一帧进行抽取&#xff0c;并对抽出的图片以秒数命名的全过程。 #include <opencv2/opencv.hpp> #include <iostream> #include <string> #include <direct.h>using namespace cv; using namespace std;void ex…