我的学习笔记12.15

本文是关于ECharts源码的分析,重点探讨Series的渲染过程,包括Line(折线图)、Bar(柱状图)和Pie(饼图)的Model和View结构。LineSeries和LineView详细阐述了折线图的实现,BarSeries和BarView讲解了柱状图的逻辑,而PieSeries和PieView则揭示了饼图的内部工作原理。
摘要由CSDN通过智能技术生成

2021SC@SDUSC

echarts源码分析

 Series渲染过程

在ECharts中用 series表示各类图表。有line(折线图)、bar(柱状图)、pie(饼图)等Series。用户通过传递option对象来设置相应的Series。

在这部分中echarts采用了Model以及View的架构来管理Series:

Model层:model/Series.js 管理Series数据。
View:view/Charts.js 负责渲染Chart视图。


Line 折线图

LineSeries

LineSeries通过extend方法扩展自Series Model,重写了defaultOption属性以及getInitialData方法。

LineView

LineView通过extend方法扩展自Chart View,重写了init、render、highlight及downplay等方法,主要代码如下:

init: function () {
    var lineGroup = new graphic.Group();
    // 使用SymbolDraw绘制Symbol
    var symbolDraw = new SymbolDraw();
    this.group.add(symbolDraw.group);

    this._symbolDraw = symbolDraw;
    this._lineGroup = lineGroup;
},
render: function (seriesModel, ecModel, api) {
    ...
    if (
        !(polyline && prevCoordSys.type === coordSys.type && step === this._step)
    ) {
        // 折线图
        // symbolDraw绘制symbol
        showSymbol && symbolDraw.updateData(data, {
            isIgnore: isIgnoreFunc,
            // createClipShape创建方法分为极坐标createPolarClipShape以及直角坐标createGridClipShape
            // createPolarClipShape:通过graphic.Sector创建Clip区域
            // createGridClipShape:通过graphic.Rect创建Clip区域
            clipShape: createClipShape(coordSys, false, true, seriesModel)
        });
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值