echarts初始化接口——init()

echarts初始化接口——init()

        本部分内容主要介绍echarts初始化接口init()方法的常见用法,包括该方法的三个参数的常见用法简介。


目录

1、API解读

2、DOM对象参数

2.1初始化(echarts.init)

2.2响应容器大小的变化

2.3为图表设置特定的大小

3、主题设置

3.1 引入主题

3.2自定义ECharts主题


1、API解读

图1.1为init()函数的各参数示意说明。

图1.1  init初始化函数的API简介

根据图1.1可知init函数共支持三个参数,分别为:

“dom?: HTMLDivElement|HTMLCanvasElement”,该参数为init函数中的第一个参数,此处的参数需要填写DOM对象,支持HTML中的“div”元素,或者“Canvas”元素。

“theme?: Object|string”,该参数为init函数中的第二个参数,为当前图表应用的主题。可以是一个主题的配置对象,也可以是使用已经通过 echarts.registerTheme注册的主题名称,用于设置图表对应的主题。用户可以通过ECharts官网提供的主题工具完成自定义主题的设置。具体设置过程将在后面介绍。

③第三个参数“opts”为一个对象,支持多个成员值,前四个为修改渲染模式,接下来两个设置交互范围,接下来是设置宽度与高度,最后一个是设置语言。

opts对象中的常见参数简介如下:

        devicePixelRatio设备像素比,默认取浏览器的值window.devicePixelRatio,可以粗略理解为物理像素与屏幕像素之间的比值,同时由如下代码可以看出,在设置第三个参数时,需要给第二个参数一个占位符,即如果没有设置主题,也要在第二个参数的位置设置“null”占位。

“var myChart = echarts.init(document.getElementById("main"),null, {devicePixelRatio: 30});”

        renderer 渲染模式,支持'canvas'或者'svg'。参见 使用 Canvas 或者 SVG 渲染。本处内容可以配合toolbox中的saveAsImage组件使用。

{ renderer: 'canvas' }

        ssr 是否使用服务端渲染,只有在 SVG 渲染模式有效。开启后不再会每帧自动渲染,必须要调用 renderToSVGString 方法才能得到渲染后 SVG 字符串。参见服务端渲染 ECharts 图表。

        useDirtyRect是否开启脏矩形渲染,只有在 Canvas 渲染模式有效,默认为false。参见 ECharts 5 新特性。

        useCoarsePointer 是否扩大可点击元素的响应范围。null 表示对移动设备开启;true 表示总是开启;false 表示总是不开启。参见增加交互响应范围。

        pointerSize 扩大元素响应范围的像素大小,配合 opts.useCoarsePointer使用。

        width 可显式指定实例宽度,单位为像素。如果传入值为null/undefined/'auto',则表示自动取 dom(实例容器)的宽度。(常用)

        height 可显式指定实例高度,单位为像素。如果传入值为null/undefined/'auto',则表示自动取 dom(实例容器)的高度。(常用)

        如图1.2所示为init中设置宽度与高度(即opts.width 或 opts.height)的使用方法:

图1.2 通过初始化函数设置图像大小

        locale使用的语言,内置 'ZH' 和 'EN' 两个语言,也可以使用 echarts.registerLocale 方法注册新的语言包,使用echarts. registerLocale函数注册语言包,此处不是重点,相关知识请同学们自行补充。

        认清三个参数之后才能够更加清晰的理解初始化方法。


2、DOM对象参数

2.1初始化echarts.init

        echarts.init通过第一个参数绑定HTML中的DOM对象,这个过程可以理解为,将HTML中的DOM对象作为画板,echarts.init初始化就相当于在画板上铺了一张画布,我们未来的图表绘制,均是在画布上进行的。推荐在HTML中定义有宽度和高度的父容器(DOM对象)。

        通常来说,需要在HTML中先定义一个<div> 结点(画板),并且通过CSS使得该结点具有宽度和高度。

        图表初始化(调用init函数)的时候,传入该结点,图表的大小默认即为结点(div的大小,如图1.3所示。

图1.3 初始化图表

        需要注意的是,使用这种方法在调用 echarts.init 时需保证容器已经有宽度和高度了。那么,当没有给HTML标签设置宽度和高度时,如何设置图表的大小呢?

        此处存在一种特殊情况:opts.width 或 opts.height可以覆盖父结点的大小。也就是说ECharts实例可以修改父结点的大小,也可以在父结点没有设置大小的时候起到设置图表大小的作用。

        使用opts.width 或 opts.height可以覆盖父结点的大小,其中“opts”指的是ECharts的实例,程序如图1.2所示。

2.2响应容器大小的变化

        在有些场景下,我们希望当容器大小改变时,图表的大小也相应地改变。这就需要监听图表容器的大小并改变图表大小。

        比如,图表容器是一个高度为 400px、宽度为页面 100%的结点,希望在浏览器宽度改变的时候,始终保持图表宽度是页面的100%,如图1.4所示。

        这种情况下,可以监听页面的resize事件获取浏览器大小改变的事件,然后调用 echartsInstance.resize 改变图表的大小。

图1.4 事件监听改变大小

        特殊情况:有时候我们可能会通过 JS 或 CSS 调整容器大小,由于页面大小并未发生改变,因此 resize 事件将不会被触发。如果有需要覆盖这种情况,可以借助浏览器的 ResizeObserver API 来实现更细粒度的监听。

2.3为图表设置特定的大小

        以上的调用没有指明 resize()中的参数,该函数除了不含参数的形式之外,还可以指定宽度和高度,实现图表大小不等于容器大小的效果,如图1.5所示。

图1.5 带有参数的resize函数

        不存在这样的调用方式:myCharts.resize(800, 400) 的形式。


3主题设置

3.1 引入主题

        主题是ECharts图表的风格抽象,用于统一多个图表的风格样式。为了顺应不同的绘图风格需求,需要下载ECharts官方提供default、infographic、shine、roma、macarons、vintage等主题。如图1.6所示,展示了如何在图表中引入shine主题,先在头部引入shine.js文件,再在ecahrts.init函数中第二个参数位置写入主体名称“shine”即完成主题设置。

图1.6 主题导入程序

3.2自定义ECharts主题

        原理说明:ECharts除了默认主题样式之外,还可以使用主题在线构建工具,根据需求快速直观地生成主题配置文件,并在ECharts中使用自定义的主题样式。自定义主题的步骤如下。

        (1)如图1.7所示,打开ECharts的主题构建工具。

图1.7 ECharts的主题构建工具

        (2)选择和配置主题。在ECharts的主题构建工具中,有十几套主题可以选择。如果这些主题还满足不了需求,那么还可以设置各种配置。ECharts提供了基本配置、视觉映射、坐标轴、图例、提示框、时间轴、数据缩放等各个模块的样式配置,配置形式相当丰富。对主题构建工具中的基本配置中的背景、标题、副标题等进行相应的配置。

        (3)配置文件下载。单击“下载”按钮;弹出“主题下载”对话框中,如图所示,单击左边的“JS版本”选项卡,将其中的代码复制到所命名的“.js”格式的文件中保存。ECharts提供了“.js”“.json”两种格式的文件,主题下载时应该选择“.js”版本的配置文件。下载好“.js”格式的文件后,对“.js”格式的文件的使用与动态切换主题的方法相同。

        要点提示:为了便于二次修改,ECharts的主题构建工具支持导入、导出配置项,导出的配置可以通过导入恢复配置项。导出的“.json”格式的文件仅用于在ECharts的主题构建工具中导入使用,而不能直接作为主题在ECharts页面中使用。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yiqinkongjian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值