热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

echartslegend位置_一起读ECharts配置项手册之series[i]line(上)

之前的文章写得都比较杂,还总是想不到要写点什么……所以最近打算把ECharts所有系列挨个聊一遍,写一个series系列的简单介绍,解决一

ec772f2d58ecc81745b55db625ebf1e7.png

之前的文章写得都比较杂,还总是想不到要写点什么……

所以最近打算把 ECharts 所有系列挨个聊一遍,写一个 series 系列的简单介绍,解决一大段时间的难选题问题- -b,顺便方便比我还新的新手入门。

正文

  • ​series[i]-line.type

series[i]-line 也就是折线图/面积图,要使用折线图/面积图时,首先需要使用 series[i]-line 的第一个配置「type」,将其设置为字符串值 'line'。

  • series[i]-line.id

「id」这个配置无默认值,但实测最新的 ECharts 4.2.1 是有默认值的,规则如下(「seriesId」即「id」,「seriesIndex」即 series[i] 的 i,「seriesName」是后面的「series[i]-line.name」)

seriesId

「id」可传入字符串值作为当前 series[i] 的 ID,用途如官方所说,「可用于在 option 或者 API 中引用组件」。

举个栗子,这样的配置项,series 中有多个 series[i]

option

我们想更新 series2 的数据,可以这么写,setOption 会自动匹配。

myChart

  • series[i]-line.name

「name」系列名称,可用于

  1. tooltip.formatter 的模版变量 {a}
  2. legend.data 的图例筛选[ seriesName1, seriesName2, ...]
  3. setOption 更新数据和配置项时用于指定对应的系列(与前面的「id」作用类似)
  • series[i]-line.coordinateSystem

「coordinateSystem」,用于指定该系列使用的坐标系

  1. 默认值为 'cartesian2d',使用二维的直角坐标系(也称笛卡尔坐标系),通过 xAxisIndex, yAxisIndex 指定相应的坐标轴组件。
  2. 也可以设置为 'polar',使用极坐标系,通过 polarIndex 指定相应的极坐标组件
  • series[i]-line.xAxisIndex 和 series[i]-line.yAxisIndex

默认值为 0,使用的 x/y 轴的 index(xAxis[i] / yAxis[i]),在单个图表实例中存在多个 x/y 轴的时候有用。

  • series[i]-line.polarIndex

与上条类似,默认值为 0,使用的极坐标系的 index(polar[i]),在单个图表实例中存在多个极坐标系的时候有用。

  • series[i]-line.symbol

标记的图形,可传入字符串值或函数。默认值为 'emptyCircle'。

fd37a36859a88ec59bd794f980915662.png
  1. 还可以设置为'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none' ;
  2. 通过 'image://url' 设置为图片,其中 URL 为图片的链接,或者 dataURI;
  3. 通过 'path://' 将图标设置为任意的矢量路径,支持任意比例。SVG PathData 可以去阿里巴巴矢量图标库 Iconfont 网站下载,也可以从 Adobe Illustrator 等工具编辑导出。
  4. 如果需要每个数据的图形不一样,可以设置为如下格式的回调函数:(value: Array|number, params: Object) => string
    1. 其中第一个参数 value 为 data 中的数据值。
    2. 第二个参数params 是其它的数据项参数。
    3. 经验证这个回调函数在 4.2.1 里还未支持,在 4.3.0-rc.2(Pre-release) 里已提供.

a47b6e76b8d7c5e97309d4f91b2a5bc8.png
  • series[i]-line.symbolSize

标记的大小,可传入数值、数组或函数,默认值为 4(宽和高均为 4),也可以分别设置宽高,如 [20, 10] 表示标记宽为 20,高为 10。

58827d2d5e5352d3432f6a0e61357220.png

同样支持回调函数:

(value: Array|number, params: Object) => number|Array

  1. 其中第一个参数 value 为 data 中的数据值
  2. 第二个参数params 是其它的数据项参数。
  • series[i]-line.symbolRotate

标记的旋转角度,可传入数值,如 90(代表逆时针旋转 90 度)。

c7300ccb1443f125127753c96a6e8e30.png
  • series[i]-line.symbolKeepAspect

如果 symbol 是 path:// 的形式,是否在缩放时保持该图形的长宽比,可传入布尔值,默认为 false。

  • series[i]-line.symbolOffset

标记相对于原本位置的偏移,可传入数组,默认值为 [0, 0] ,数组元素既可以是数值,也可以是百分比(以元素尺寸,即宽或者高作为 100%)。数组第一个值代表向右的偏移量,第二个值代表向下的偏移量。

bf8f86e987fe0c8d9d9d7707692a1948.png
  • series[i]-line.showSymbol

是否显示 symbol, 可传入布尔值,默认为 true。如果 false 则只有在 tooltip hover 的时候显示。

f62d8588f85de75fdb0154e96e6744b4.png
  • series[i]-line.showAllSymbol

是否显示所有 symbol 图形,可传入布尔值,只在主轴为类目轴(axis.type 为 'category')时有效,可选值如下:

  1. 默认值 'auto',如果有足够空间则显示所有 symbol 图形,否则随主轴标签间隔隐藏策略;
  2. true,显示所有 symbol 图形;
  3. 随主轴标签间隔隐藏策略,效果如下图。

d29b2daf2ddc369cf1830acd1db53549.png
  • series[i]-line.hoverAnimation

是否开启 hover 在拐点标志上的提示动画效果(强调/高亮),可传入布尔值,默认为 true。比如鼠标浮在该 symbol 上、浮在 series 对应图例(legend)上、浮在该 symbol 所在轴(tootip.trigger 为 'axis')等。

  • series[i]-line.legendHoverLink

是否启用图例 hover 时的联动高亮,即鼠标浮在图例(legend)上的时候,该图例对应的 series 的 symbol 是否高亮(放大)可传入布尔值,默认为 true。

  • series[i]-line.stack

数据堆叠,同个类目轴上系列配置相同的stack值后,后一个系列的值会在前一个系列的值上相加(堆叠柱图也是用这个属性实现)。相同数据是否堆叠的对比,如效果官方例子所示:

cae92361e1d07d6fa8367c45d7a4fd32.png
  • series[i]-line.cursor

鼠标浮在该系列的 symbol 上时,鼠标光标的样式,同 CSS 的 cursor,可传入字符串值,默认为一只手 'pointer' ,其他可用属性还有 'crosshair','move','wait' 等等。

  • series[i]-line.connectNulls

是否连接空数据,可传入布尔值,默认值为 false。效果如下:

09c7b1f727d8c63c3a6fefc66834cafa.png
  • series[i]-line.clipOverflow

是否对超出部分裁剪,可传入布尔值,默认为裁剪 true。

881787fdbc1bfbcfc2f35dfecfa969c5.png
  • series[i]-line.step

是否是阶梯线图,可传入布尔值或字符串值,默认为 false。可以设置为 true 显示成阶梯线图,也支持设置成 'start'(与 true 等效), 'middle', 'end' 分别配置在当前点,当前点与下个点的中间点,下个点拐弯,效果见下图(官方示例)。

cabcc9867fa35292688937fe51ec20ee.png
  • series[i]-line.smooth

是否曲线平滑度,可传入布尔值或 0 到 1 的数值(数值越大越平滑),默认值为 false,与传入 0 等效,即折线效果;传入 true,与传入 0.5 等效。具体效果如下图所示。

92410762f82eee4492e23198e4b48622.png
  • series[i]-line.smoothMonotone

平滑算法,可传入字符串值,默认值手册未提及,经测试应该为 'none',即老算法;传入 'x' 则曲线在数据点处方向为水平,传入 'y' 则为竖直。具体效果如下图。

fedb78a720d9e927a9b58a66a5235128.png
  • series[i]-line.sampling

官方描述:折线图在数据量远大于像素点时候的降采样策略,开启后可以有效的优化图表的绘制效率,默认关闭,也就是全部绘制不过滤数据点。

  1. 'average' 取过滤点的平均值
  2. 'max' 取过滤点的最大值
  3. 'min' 取过滤点的最小值
  4. 'sum' 取过滤点的和

具体效果如下图:

6a61592cb0e7a2082c983aeed8dc48be.png
  • series[i]-line.zlevel

折线图所有图形的 zlevel 值,可传入数值,默认值为 0。

主要用于 Canvas 分层,将变化较多和较少的组件通过分层隔离开,但要注意分层过多会加大内存开销,需要用手机浏览时谨慎使用。

  • series[i]-line.z

官方描述:折线图组件的所有图形的z值。控制图形的前后顺序。z 值小的图形会被 z 值大的图形覆盖。z 相比 zlevel 优先级更低,而且不会创建新的 Canvas。

可传入数值,默认值为 2。

  • series[i]-line.silent

官方描述:图形是否不响应和触发鼠标事件,默认为 false,即响应和触发鼠标事件。

可传入布尔值。

series[i]-line.animation

是否开启动画,可传入布尔值,默认为 true。

series[i]-line.animationThreshold

关闭动画的阈值,当单个 series 显示的图形数量大于阈值时会关闭动画。

可传入数值,默认 2000。

  • series[i]-line.animationDuration

初始动画持续的时长,symbol 渲染动画的快慢,可传入数值,默认值 1000(毫秒),也可通过回调函数为每个数据定义不同的时长。

animationDuration

  • series[i]-line.animationDurationUpdate

更新动画持续的时长, symbol 渲染动画的快慢,可传入数值,默认值 1000(毫秒),也可通过回调函数为每个数据定义不同的时长。

  • series[i]-line.animationDelay

初始动画的延迟时间,symbol 渲染动画的早晚,可传入数值,默认值 0(毫秒),也可通过回调函数为每个数据定义不同的时长。

animationDelay

  • series[i]-line.animationDelayUpdate

更新动画的延迟时间,symbol 渲染动画的早晚,可传入数值,默认值 0(毫秒),也可通过回调函数为每个数据定义不同的时长。

series[i]-line.animationEasing

初始动画的缓动效果,line 渲染动画的效果,可传入字符串值,默认为「linear」,匀速渲染。

其他效果如「quadraticIn」、「cubicIn」等见手册处提供的官方示例:

719e168e0f82d00c6416a392f9dfc2a7.png

series[i]-line.animationEasingUpdate

更新动画的缓动效果,line 渲染动画的效果,可传入字符串值,默认为「linear」,匀速渲染。

  • series[i]-line.data

系列中的数据内容数组。数组项通常为具体的数据项。可传入 Object。

Object 常见的形式有:

1、二维数组表示

series

其中「维度X」和「维度Y」会默认对应于平面直角坐标系的 xAxis 和 yAxis,或者极坐标系的 radiusAxis 和 angleAxis。

2、一维数组表示

当只有一个轴为类目轴(axis.type 为 'category')的时候,数据可以简化为一维数组。例如:

xAxis

3、数组项为(部分/全部)对象的情况

用于数据图形样式的个性化定制,例如:

[

对象的 key 支持:

name:数据项名称,

value:单个数据项的数值,

symbol&symbolSize:单个数据项的图形&图形大小,

symbolRotate:单个数据项的图形角度,

symbolKeepAspect:单个数据项的图形是否保持宽高比,

symbolOffset :单个数据项的图形的位置偏移量,

label:单个数据项的文字标签,比 series[i]-line.label 优先级高,

itemStyle:单个数据项的图形样式,比 series[i]-line.itemStyle 优先级高,

emphasis:单个数据项的图形的高亮形式,比 series[i]-line.emphasis 优先级高,

tooltip:单个数据项图形的提示框,比 series[i]-line.tooltip 优先级高。

待续

不写不知道,一写发现内容真挺多的,一个 series[i]-line 好长时间都没写完- -b,只好把一些子配置太多的配置项,留到下次写……

另外,也在考虑是否有必要逐个介绍配置项,因为有些仅仅是官方手册的摘抄……

比如只介绍些相对复杂的或有需要注意情况的?


待续内容

  • series[i]-line.label

官方描述:图形上的文本标签,可用于说明图形的一些数据信息,比如值,名称等。

该配置项有大量子配置,常用的有 show、position、color、formatter 等等,我们下次展开。

  • series[i]-line.itemStyle、series[i]-line.lineStyle、series[i]-line.areaStyle、series[i]-line.emphasis

官方描述分别为:折线拐点标志的样式、折线线条样式、区域填充样式、图形的高亮样式。

这 4 个配置项同样有不少子配置,下次展开。

  • series[i]-line.dimensions、series[i]-line.encode、series[i]-line.seriesLayoutBy、series[i]-line.datasetIndex

这 4 个配置与 4.0 新功能「使用 dataset 管理数据集」有关,下次展开。

  • series[i]-line.markPoint、series[i]-line.markLine、series[i]-line.markArea、series[i]-line.tooltip

分别用于:图标的标注、标线、标域,图形的提示框,这 4 个配置项同样有不少子配置,下次展开。



推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • This article discusses the efficiency of using char str[] and char *str and whether there is any reason to prefer one over the other. It explains the difference between the two and provides an example to illustrate their usage. ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 先看看ElementUI里关于el-table的template数据结构:<template><el-table:datatableData><e ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
author-avatar
毕竟汤侦探
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有