iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Echarts怎么自定义图形
  • 864
分享到

Echarts怎么自定义图形

2023-07-05 05:07:27 864人浏览 安东尼
摘要

本篇内容主要讲解“Echarts怎么自定义图形”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Echarts怎么自定义图形”吧!1.自定义图形最后的效果是这样的:图形由三个面组成,需要定义三个形状

本篇内容主要讲解“Echarts怎么自定义图形”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Echarts怎么自定义图形”吧!

1.自定义图形最后的效果是这样的:

Echarts怎么自定义图形

图形由三个面组成,需要定义三个形状。用cubeleft,cubetop,cuberight来分别定义左侧面,顶部面以及右侧面。

2.注册自定义的图形

 echarts官方文档处:Documentation - Apache ECharts

Echarts怎么自定义图形

我们需要定义一个这样的类,然后再通过echarts来注册这个类,后续就可以通过类名来使用了。

3.extendShape

            // 绘制左侧面            const CubeLeft = echarts.graphic.extendShape({                    shape: {                        x: 0,                        y: 0                    },                    buildPath: function(ctx, shape) {                        const xAxisPoint = shape.xAxisPoint                        const c0 = [shape.x, shape.y]                        const c1 = [shape.x - 13, shape.y - 13]                        const c2 = [xAxisPoint[0] - 13, xAxisPoint[1] - 13]                        const c3 = [xAxisPoint[0], xAxisPoint[1]]                        ctx.moveTo(c0[0], c0[1]).lineTo(c1[0], c1[1]).lineTo(c2[0], c2[1]).lineTo(c3[0], c3[1]).closePath()                    }             })            // 绘制右侧面            const CubeRight = echarts.graphic.extendShape({                    shape: {                        x: 0,                        y: 0                    },                    buildPath: function(ctx, shape) {                        const xAxisPoint = shape.xAxisPoint                        const c1 = [shape.x, shape.y]                        const c2 = [xAxisPoint[0], xAxisPoint[1]]                        const c3 = [xAxisPoint[0] + 18, xAxisPoint[1] - 9]                        const c4 = [shape.x + 18, shape.y - 9]                        ctx.moveTo(c1[0], c1[1]).lineTo(c2[0], c2[1]).lineTo(c3[0], c3[1]).lineTo(c4[0], c4[1]).closePath()                    }                })            // 绘制顶面            const CubeTop = echarts.graphic.extendShape({                    shape: {                        x: 0,                        y: 0                    },                    buildPath: function(ctx, shape) {                        const c1 = [shape.x, shape.y]                        const c2 = [shape.x + 18, shape.y - 9]                        const c3 = [shape.x + 5, shape.y - 22]                        const c4 = [shape.x - 13, shape.y - 13]                        ctx.moveTo(c1[0], c1[1]).lineTo(c2[0], c2[1]).lineTo(c3[0], c3[1]).lineTo(c4[0], c4[1]).closePath()                    }             })

 这段代码主要是看buildpath如何使用,zrender的官方文档中,并没有直接告诉这个方法的两个参数是干什么用的,只给了一个示例,从这个示例中,可以知道这两个参数具体怎么用。

Echarts怎么自定义图形

第一个参数是path,第二参数是shape。path可以理解为一个canvas中的绘制画笔,可以设置路径并且闭合路径。

第二个参数在echarts中,是自定义的custom传递过来的,因此可以通过这个对象获取到我们一个很熟悉的属性 xAxisPoint。

绘制的两个面中,只有左侧和右侧面需要有填充高度,顶部不需要,所以顶部的形状就没有使用xAxisPoint这个属性。

这也是很好理解的,因为我们自定义的伪圆柱体里面的填充物肯定是有一个高度的。填充多少根据我们的数据来知道,让它看起来确实是被某种东西从底部开始增多填充了。

拿比较简单的顶部来举例:

buildPath: function(ctx, shape) {    const c1 = [shape.x, shape.y]    const c2 = [shape.x + 18, shape.y - 9]    const c3 = [shape.x + 5, shape.y - 22]    const c4 = [shape.x - 13, shape.y - 13]    ctx.moveTo(c1[0], c1[1]).lineTo(c2[0], c2[1]).lineTo(c3[0], c3[1]).lineTo(c4[0],c4[1]).closePath()}

绘制的四边形,其实就是四个顶点,我们只需要用moveTo来控制路径就行,在最后那个点进行闭合就行。偏移量是固定的值,可以根据情况自己去设置不同的值来扭曲这个四边形。

其中c1是底部的顶点,c2是右侧的顶点,c3是顶部的顶点,c4是右侧的顶点。其他两个面也是类似的。

4.使用echarts注册这三个图形

                // 注册三个面图形            echarts.graphic.reGISterShape('CubeLeft', CubeLeft)            echarts.graphic.registerShape('CubeRight', CubeRight)            echarts.graphic.registerShape('CubeTop', CubeTop)

5.使用自定义的形状

其他的数据都和正常使用echarts一样,不同的地方在于series的配置。

series数组中,总共放置二个对象。第一个对象如下:

{                type: 'custom',                renderItem: function(params, api) {                    const location = api.coord([api.value(0), api.value(1)])                    return {                        type: 'group',                        children: [{                            type: 'CubeLeft',                            shape: {                                api,                                x: location[0],                                y: location[1],                                xAxisPoint: api.coord([api.value(0), 0])                            },                            style: {                                fill: 'rgba(47,102,192,.27)',                                stroke: 'black'                            },                            z2: 999                        }, {                            type: 'CubeRight',                            shape: {                                api,                                x: location[0],                                y: location[1],                                xAxisPoint: api.coord([api.value(0), 0])                            },                            style: {                                fill: 'rgba(59,128,226,.27)',                                stroke: 'black'                            },                            z2: 999                        }, {                            type: 'CubeTop',                            shape: {                                api,                                x: location[0],                                y: location[1],                                xAxisPoint: api.coord([api.value(0), 0])                            },                            style: {                                fill: 'rgba(72,156,221,.27)',                                stroke: 'black'                            },                            z2: 999                        }]                    }                },                data: MAX}

最主要的还是renderItem里面的逻辑,这个方法返回一个对象,对象就是我们自定义的一个group组。renderItem可以返回的对象在文档中都有说明:Documentation - Apache ECharts

我们定义的那三个面,需要把它看成一个整体,所以renderItem返回的是一个类型为group的对象,另外三个形状作为children保存在数组中。

其中的shape参数,会在buildpath中使用到。

style中设置了它的填充颜色和边框线颜色。然后使用z2定义这个echarts的显示层级为最上级。如果不使用它,下面用于填充的会将其遮挡住。

这里也只是定义了第一个自定义的形状,也就是最外层的那个伪3D柱体。第二个自定义形状是要填充的形状。

{                type: 'custom',                renderItem: (params, api) => {                    const location = api.coord([api.value(0), api.value(1)])                    var color = new echarts.graphic.LinearGradient(                        0, 0, 0, 1, [{                                offset: 1,                                color: "#FEFD53"                            },                            {                                offset: 0,                                color: "#f7c824"                            }                        ]                    );                    return {                        type: 'group',                        children: [{                            type: 'CubeLeft',                            shape: {                                api,                                xValue: api.value(0),                                yValue: api.value(1),                                x: location[0],                                y: location[1],                                xAxisPoint: api.coord([api.value(0), 0])                            },                            style: {                                fill: color,                                stroke: 'red'                            }                        }, {                            type: 'CubeRight',                            shape: {                                api,                                xValue: api.value(0),                                yValue: api.value(1),                                x: location[0],                                y: location[1],                                xAxisPoint: api.coord([api.value(0), 0])                            },                            style: {                                fill: color,                                stroke: 'red'                            }                        }, {                            type: 'CubeTop',                            shape: {                                api,                                xValue: api.value(0),                                yValue: api.value(1),                                x: location[0],                                y: location[1],                                xAxisPoint: api.coord([api.value(0), 0])                            },                            style: {                                fill: color,                                stroke: 'red'                            }                        }]                    }                },                data: VALUE}

内部填充的图形,使用了一个线性渐变的颜色用来填充。边框线使用红色。与第一个不同的是,style里面的风格,以及data使用的数据。这里的data使用value具体的数值。而外壳的图形使用的数据是max最大值。这样就会有一个渐变颜色填充的红色边框图形,填充到了一个黑色边框的柱体中。这样就自定义好了一个视觉上的3d柱体形状的图表了。

到此,相信大家对“Echarts怎么自定义图形”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Echarts怎么自定义图形

本文链接: https://www.lsjlt.com/news/349801.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Echarts怎么自定义图形
    本篇内容主要讲解“Echarts怎么自定义图形”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Echarts怎么自定义图形”吧!1.自定义图形最后的效果是这样的:图形由三个面组成,需要定义三个形状...
    99+
    2023-07-05
  • Echarts自定义图形的方法参考
    目录前言1.自定义图形最后的效果是这样的:2.注册自定义的图形3.extendShape4.使用echarts注册这三个图形5.使用自定义的形状总结前言 在一个前端大屏项目中,有一个...
    99+
    2023-02-23
    echarts自定义图表 echarts怎么用 自定义图表
  • win7开始图标怎么自定义形状?
    Windows7自带的开始图标是个圆形的windows logo,如果想换种心情,可以自定义图标。win8的蓝色正方形logo不错,以这个为例。当然,你也可以用自己的头像! 软媒魔方电脑大师 V6.25 绿色免费版类型...
    99+
    2023-06-10
    win7 开始图标 自定义 形状
  • vue2.0中怎么自定义Echarts组件
    这期内容当中小编将会给大家带来有关vue2.0中怎么自定义Echarts组件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、自定义 图表 组件Echarts.vue&l...
    99+
    2022-10-19
  • 自定义视图view怎么实现环形进度条
    这篇文章主要介绍“自定义视图view怎么实现环形进度条”,在日常操作中,相信很多人在自定义视图view怎么实现环形进度条问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”自定义视图view怎么实现环形进度条”的疑...
    99+
    2023-07-05
  • 怎么用ECharts画饼图和环形图
    这篇文章主要介绍“怎么用ECharts画饼图和环形图”,在日常操作中,相信很多人在怎么用ECharts画饼图和环形图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用ECh...
    99+
    2022-10-19
  • echarts自定义legend样式的详细图文教程
    最近要完成显示一个饼图,使用echarts组件,先用官方给定的模板加载出样式,然后修改为自定义的样式。如下图是要自定义legend。 先放上官方加载出的代码 this....
    99+
    2022-11-13
    echarts修改legend样式 echarts legend样式 echarts 修改图例legend颜色
  • 自定义view视图之Canvas+Paint图形绘制
    目录一、绘图都需要那些相关知识二、我们先来了解下Canvas三、那我们如何来使用这些方法进行绘制呢?1、我们需要创建一个类继承view(1)首先定义一个画笔对象和一个画布的颜色(2)...
    99+
    2023-05-14
    自定义view 自定义view视图 Canvas+Paint 自定义view图形绘制
  • Android自定义View实现心形图案
    本文实例为大家分享了Android自定义View实现心形的具体代码,供大家参考,具体内容如下 通过继承View实现的❤形 在绘制心形需要Path类中的两个重要方法分别...
    99+
    2022-11-12
  • vue+echarts怎么实现3D柱形图
    这篇文章主要介绍了vue+echarts怎么实现3D柱形图的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue+echarts怎么实现3D柱形图文章都会有所收获,下面我们一起来看看吧。效果如下:1、安装echa...
    99+
    2023-06-29
  • win10怎么自定义图标
    这篇文章将为大家详细讲解有关win10怎么自定义图标,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。win10自定义图标的方法首先需要找到进行修改的文件夹,右击文件夹选择属性。进入后切换为自定义选项,点击更...
    99+
    2023-06-10
  • vue实现echarts中的map自定义地图背景色
    效果图: 使用series-map.data.itemStyle. color定义每个地区背景色 vue代码 export default { props:{ ...
    99+
    2023-09-01
    echarts vue.js php
  • Android自定义View实现shape图形绘制
    概述 之前曾写过一篇文章介绍了Android中drawable使用Shape资源,通过定义drawable中的shape资源能够绘制简单的图形效果,如矩形,椭圆形,线形和圆环等...
    99+
    2022-06-06
    shape view Android
  • 自定义视图view之环形进度条
    目录 一、普通效果。二、单环在圈外画弧度三、双环效果四、Xml布局五、MainActivity中代码的引用六、自定义属性  一、普通效果。 本章博客有4种不同的效...
    99+
    2023-05-14
    自定义视图 自定义view view环形进度条
  • vue中怎么使用echarts和echarts-gl实现3D饼图环形饼图
    今天小编给大家分享一下vue中怎么使用echarts和echarts-gl实现3D饼图环形饼图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一...
    99+
    2023-07-05
  • Android中怎么通过自定义View实现圆形切图效果
    本篇文章给大家分享的是有关Android中怎么通过自定义View实现圆形切图效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。实现思路使用一个Paint,将得到的Bitmap设...
    99+
    2023-05-30
  • Echarts图形的打印导出怎么实现
    这篇文章主要讲解了“Echarts图形的打印导出怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Echarts图形的打印导出怎么实现”吧!第一步:部署环境1,在服务器端安装 Slime...
    99+
    2023-06-04
  • Echarts中怎么实现一个树形图表
    Echarts中怎么实现一个树形图表,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。树图主要用来可视化树形数据结构,是一种特殊的层次类型。实现方法,将series->t...
    99+
    2023-06-20
  • Android自定义view实现圆形、圆角和椭圆图片(BitmapShader图形渲染)
    一、前言 Android实现圆角矩形,圆形或者椭圆等图形,一般主要是个自定义View加上使用Xfermode实现的。实现圆角图片的方法其实不少,常见的就是利用Xfermode,...
    99+
    2022-06-06
    view 图片 椭圆 Android
  • vue+echarts绘制省份地图并添加自定义标注方式
    目录echarts绘制省份地图并添加自定义标注echarts添加地图标点(笔记)总结echarts绘制省份地图并添加自定义标注 效果图 在main.js中引入地图 import e...
    99+
    2023-05-17
    vue echarts绘制 echarts绘制省份地图 echarts自定义标注
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作