项目中要画树图,但echarts的树图的线只支持贝塞尔曲线,修改曲线的弧度也只能改成直线,但需求是折线。所以通过修改echarts的源码来满足需求。
以下是效果图:
步骤:1、下载源码 2、修改 3、webpack打包安装
1、下载地址: https://github.com/apache/incubator-echarts/releases/tag/4.2.1
2、(1)解压打开,找到树图的文件夹,路径有两个地方:分别在src和lib目录下
C:\Users\who\Desktop\echartSource\incubator-echarts-4.2.1\src\chart\tree
C:\Users\who\Desktop\echartSource\incubator-echarts-4.2.1\lib\chart\tree
(2)树图的样式在TreeView.js文件中,选择一个打开,搜索一下贝塞尔曲线:BezierCurve,找到相信的函数。
(3)把贝塞尔曲线修改成折线。
(4)修改shape参数,参数是通过:getEdgeShape这个函数获取的,所以查看函数的代码
修改最下面的返回值:
(5)src和lib目录下的两个地方的文件都按照上面修改,
3、webpack打包安装
(1)卸载项目原来的echarts:npm uninstall echarts
(2)本地安装修改后的echarts:npm install C:\Users\who\Desktop\echartSource\incubator-echarts-4.2.1(本地代码的路径)
4、后面就是画ecahrts图,看效果了。
(1)建议修改调试时用html引入的方式,不用每次都打包安装.
(2)关于折线(Polyline)和贝塞尔曲线(BezierCurve)api的使用方式可查看zrender官网:https://ecomfe.github.io/zrender-doc/public/api.html#zrenderbeziercurve