Skip to content

ECharts

[TOC]

索引

echarts

echartsInstance

option

  • backgroundColorColor,设置直角坐标系内绘图区。
  • grid?{show?,left?,containLabel?,backgroundColor?,...},直角坐标系内绘图区域。
  • xAxis{show?,name?,type?,data,axisLine?,axisTick?,axisLabel?,splitLine?,...},直角坐标系grid中的x轴。
  • yAxis{show?,name?,type?,data,axisLine?,axisTick?,axisLabel?,splitLine?,...},直角坐标系grid中的y轴。
  • title?{text,show?,top?,left?,...},图表的标题。
  • legend?{show?,itemWidth?,icon?,formatter?,textStyle?,itemGap?,...},图例,展现了不同系列的标记、颜色。图例文字来自于data.name
  • tooltip?{show?,trigger?,axisPointer?,formatter?,,...},提示框。
  • toolbox?{},工具栏,提供操作图表的工具。
  • visualMap?{type?,left?,,seriesIndex,inRange,...},视觉映射,可以将数据值映射到图形的形状、大小、颜色等。
  • geo?{map,roam?,label?,aspectScale?,itemStyle?,emphasis?,...},地理坐标系组件,用于地图的绘制,支持在地理坐标系上绘制散点图、线集。
  • series[{type,data,name?,label?,itemStyle?,emphasis?,coordinateSystem?,...}],系列,配置系列图表的类型和图形信息数据

color

  • color{type,x,y,x2,y2,colorStops},线性渐变。
  • color{type,x,y,r,colorStops},径向渐变。
  • color{image,repeat},纹理填充。

ECharts

echarts

init()

echarts.init()(dom?,theme?,opt?),创建echarts实例。

  • dom?HTMLDivElement | HTMLCanvasElement,实例容器,一般是一个具有高宽的 DIV 元素。

  • theme?string | {} | null,应用的主题。不指定主题使用null

  • opt?{renderer?,ssr?,width?,height?,...},附加参数。有下面几个可选项:

    • renderer?canvas | svg默认:canvas,渲染模式。
    • ssr?boolean默认:false,是否使用服务端渲染,只有在 SVG 渲染模式有效。
  • 返回:

  • echartsInstanceECharts,返回一个ECharts实例。

  • js
    // 1. 初始化图表
    var myChart = echarts.init(document.getElementById('main'));
    
    // 2. 初始化图表,使用 'dark' 主题
    var myChart = echarts.init(document.getElementById('main'), 'dark');
    
    // 3. 使用自定义宽高和渲染方式初始化图表
    var myChart = echarts.init(document.getElementById('main'), null, {
        renderer: 'svg',  // 使用 SVG 渲染方式
        width: 800,       // 设置宽度
        height: 600       // 设置高度
    });

registerMap()

echarts.registerMap()(mapName, opt),注册可用的地图,只在 geo 组件或者 map 图表类型中使用。

  • mapNamestring,地图名称。

  • opt{geoJSON?,svg?,specialAreas?}

    • geoJSONjson,GeoJson 格式的数据。
    • svg?string | SVG DOM,SVG 格式的数据。
    • specialAreas?object,将地图中的部分区域缩放到合适的位置,可以使得整个地图的显示更加好看。只在 geoJSON 中生效,svg 中不生效。
  • js
    // 1. 注册自定义地图
    var mapGeoJson = {...} // 假设我们有一个自定义的 GeoJSON 数据
    echarts.registerMap('myMap', {geoJSON: mapGeoJson});
    
    // 2. 使用注册的中国地图
    echarts.registerMap('china', echarts.getMap('china'));

getMap()

echarts.getMap()(mapName),获取已注册地图。

  • mapNamestring,地图名称。

  • 返回:

  • map{geoJSON,specialAreas},返回注册的地图。

  • js
    // 获取中国地图的数据, china为注册的地图
    var chinaMap = echarts.getMap('china');

echartsInstance

setOption()

echartsInstance.setOption()(option),设置图表实例的配置项以及数据,万能接口。

  • optionECOption,图表的配置项和数据。

  • js
    // 设置图表的配置项
    var option = {...} // 配置图表
    myChart.setOption(option);

getWidth()

echartsInstance.getWidth()(),获取 ECharts 实例容器的宽度。

  • 返回:

  • widthnumber,返回容器的宽度。

  • js
    // 获取图表容器的宽度
    var chartWidth = myChart.getWidth();
    console.log('图表容器的宽度为:', chartWidth); // 输出容器的宽度

getHeight()

echartsInstance.getHeight()(),获取 ECharts 实例容器的高度。

  • 返回:

  • heightnumber,返回容器的高度。

  • js
    // 获取图表容器的宽度
    var chartHeight = myChart.getHeight();
    console.log('图表容器的高度为:', chartHeight); // 输出容器的高度

resize()

echartsInstance.resize()({width?,height?,silent?,animation?}),改变图表尺寸,在容器大小发生改变时需要手动调用。

  • width?Length,显式指定实例宽度。

  • height?Length,显式指定实例高度。

  • silent?boolean默认:false,是否避免重复触发事件。

  • animation?{duration?,easing?},resize时是否应用过渡动画。

  • 返回:

  • echartsECharts,返回一个ECharts。

  • js
    // 1. 按钮点击后调整图表大小,手动设置
    document.getElementById('resizeBtn').addEventListener('click', function() {
        myChart.resize({
            width: 800,  // 手动设置宽度
            height: 500  // 手动设置高度
        });
    });
    
    // 2. 监听窗口的大小变化,响应式调整图表大小
    window.addEventListener('resize', function() {
        myChart.resize(); // 当窗口大小变化时,自动调整图表大小
    });
    
    // 3. 按钮点击后调整图表大小,并设置silent为true,避免重复触发resize事件
    document.getElementById('resizeBtn').addEventListener('click', function() {
        myChart.resize({
            width: 800,  // 手动设置宽度
            height: 500, // 手动设置高度
            silent: true  // 不触发 resize 事件
        });
    });

showLoading()

echartsInstance.showLoading()(type?,opt?),显示加载动画效果。

  • type?default,加载动画类型。

  • opt?{text?,color?,zlevel?,...},加载动画配置项。

  • js
    // 显示加载动画
    myChart.showLoading();

hideLoading()

echartsInstance.hideLoading()(),隐藏加载动画效果。

  • js
    // 隐藏加载动画
    myChart.hideLoading();

dispatchAction()

echartsInstance.dispatchAction()({type,additionalParameters?}),触发图表行为,如图例开关、显示提示框等。

  • typestring,表示要触发的行为类型。

    • highlight/downplay: 高亮/取消高亮某个系列或数据项。
    • showTip/hideTip: 显示/藏提示框。
    • select/unselect: 选择/取消选择数据项。
    • toggleLegend: 切换图例项的显示状态。
    • dataZoom: 用于控制数据缩放。
  • additionalParameters?any,取决于触发的行为类型,不同的行为类型有不同的参数需求。

    • highlight/downplayshowTip/hideTipselect/unselect
    • seriesIndex?number,指定要操作的系列索引,从0开始。
    • dataIndex?number,指定要操作的数据项索引,从0开始。
    • toggleLegend
    • name?string,图例项的名称,用来指定要切换的图例项。
    • dataZoom
    • start?number0-100,缩放的起始位置。
    • end?number0-100,缩放的结束位置。
  • html
    <div id="main" style="width: 600px; height: 400px"></div>
    <button onclick="highlightData()">高亮数据</button>
    <button onclick="toggleLegend()">切换图例</button>
    <button onclick="showTooltip()">显示提示框</button>
    <button onclick="selectData()">选择数据</button>
    
    <script>
      var myChart = echarts.init(document.getElementById('main'))
      var option = { ... }
      myChart.setOption(option)
    
      // 高亮数据项
      function highlightData() {
        myChart.dispatchAction({ type: 'highlight', seriesIndex: 0, dataIndex: 1 })
      }
    
      // 切换图例
      function toggleLegend() {
        myChart.dispatchAction({ type: 'toggleLegend', name: '邮件营销' })
      }
    
      // 显示提示框
      function showTooltip() {
        myChart.dispatchAction({ type: 'showTip', seriesIndex: 0, dataIndex: 2 })
      }
    
      // 选择数据项
      function selectData() {
        myChart.dispatchAction({ type: 'select', seriesIndex: 0, dataIndex: 0 })
      }
    </script>

dispose()

echartsInstance.dispose()(),销毁实例,销毁后实例无法再被使用。

  • js
    // SPA页面切换、图表切换时销毁图表
    if (myChart) {
        myChart.dispose();
    }
    
    // 当用户返回时,重新创建图表
    myChart = echarts.init(document.getElementById('chart-container'));
    myChart.setOption(newOption);

on()

echartsInstance.on()(eventName,query?,handler,context?),添加事件处理函数。

  • eventNamestring,事件名称,全小写。

    • 基本事件:clickmouseovermouseoutmousedownmouseupmousemove
    • datazoom:数据区域缩放事件
    • legendselectchanged:图例选择改变事件
    • brush:刷选事件
    • resize:图表大小变化事件
  • query?string|Object,可选的过滤条件,能够只在指定的组件或者元素上进行响应。如'series.line'

  • handler(event) => void,事件处理函数。

  • context?Object,回调函数内部的context,即this的指向。

  • js
    // 1. 监听数据缩放事件
    myChart.on('datazoom', function (params) {
        console.log('数据缩放:', params.start, params.end);
    });
    
    // 2. 监听图例选择改变事件
    myChart.on('legendselectchanged', function (params) {
        console.log('图例状态改变:', params.selected);
    });
    
    // 3. 监听窗口或容器大小调整事件
    myChart.on('resize', function () {
        console.log('图表大小已调整');
    });

option

  • backgroundColorColor,设置直角坐标系内绘图区。
  • grid?{show?,left?,containLabel?,backgroundColor?,...},直角坐标系内绘图区域。
    • show?boolean默认:false,是否显示直角坐标系网格。
    • left?, right?, top?, bottom?Length默认:10%,10%,60,60,grid组件离容器左右上下的距离。
    • containLabel?boolean默认:false,grid区域是否包含坐标轴的刻度标签
    • backgroundColor?Color默认:transparent,网格背景色。
  • xAxis{show?,name?,type?,data,axisLine?,axisTick?,axisLabel?,splitLine?,...},直角坐标系grid中的x轴。
  • yAxis{show?,name?,type?,data,axisLine?,axisTick?,axisLabel?,splitLine?,...},直角坐标系grid中的y轴。
    • show?boolean默认:true,是否显示x或y轴。

    • name?string,坐标轴名称。

    • type?value | category | time | log 默认:category,坐标轴类型。

      • value,数值轴,适用于连续数据。常用于y轴。

      • category,类目轴,适用于离散的类目数据。常用于x轴。类目数据可来源xAxis.dataseries.datadataset.source

      • time,时间轴,适用于连续的时序数据。

      • log,对数轴。适用于对数数据。

    • datastring[] | [{}],类目数据,在类目轴type: 'category'中有效。

    • axisLine?{show?,lineStyle?},坐标轴轴线相关设置。

    • axisTick?{show?,length?,lineStyle?},坐标轴刻度相关设置。

    • axisLabel?{show?,color?,fontSize?},坐标轴刻度标签的相关设置。

    • splitLine?{show?,lineStyle?},坐标轴在grid区域中的分隔线。

      • lineStyle?{color?,width?},线条样式。
  • title?{show?,top...?,text,textStyle?,subtext?,subtextStyle?,...},图表的标题。
    • show?boolean默认:true,是否显示标题组件。
    • top?, left?Length, Length,title 组件离容器上侧、左侧的距离。
    • textstring,主标题文本,支持 \n 换行。
    • textStyle?{color,rich,...},主标题样式。
    • subtext?string,副标题文本,支持 \n 换行。
    • subtextStyle?{color,rich,...},副标题样式。
  • legend?{show?,itemWidth?,icon?,formatter?,textStyle?,itemGap?,orient?,...},图例,展现了不同系列的标记、颜色。图例文字来自于data.name
    • show?boolean默认:true,是否显示图例。
    • itemWidth?number默认:25,图例标记的图形宽度。
    • icon?circle | rect | ...,图例项的 icon。
    • formatter?string | (name) => void,用来格式化图例文本。
      • namestring,图例名称。
    • textStyle?{rich?},图例的公用文本样式。
      • rich?CSS样式,富文本的CSS样式
    • itemGap?number默认:10,图例每项之间的间隔。
    • orient?horizontal | vertical默认:horizontal,图例列表的布局朝向。
  • tooltip?{show?,trigger?,axisPointer?,formatter?,...},提示框。
    • show?boolean默认:true,是否显示提示框。
    • trigger?item | axis默认:item
    • axisPointer?type,坐标轴指示器配置项。
      • typeline | cross | shadow | none,指示器类型。
    • formatter?string | (params, ticket, callback) => string | HTMLElement[],提示框浮层内容格式器。
      • paramsobject | array,formatter 需要的数据集。
      • ticketstring,异步回调标识,配合第三个参数 callback 使用。
      • callback(ticket, html) => void,回调函数
  • toolbox?{},工具栏,提供操作图表的工具。
  • visualMap?{type?,left?,,seriesIndex,inRange,...},视觉映射,可以将数据值映射到图形的形状、大小、颜色等。
    • typecontinuous | piecewise默认:continuous,视觉映射的类型。
    • left?,right?,top?,bottom?Length默认:,visualMap 组件离容器的距离。
    • seriesIndexnumber | []默认:所有系列,指定取哪个系列的数据。
    • inRange{color}默认:,定义在选中范围中的视觉元素。
      • color[],颜色数组。
  • geo?{map,roam?,label?,aspectScale?,itemStyle?,emphasis?,...},地理坐标系组件,用于地图的绘制,支持在地理坐标系上绘制散点图、线集。
    • mapstring,使用 registerMap 注册的地图名称。
    • roam?boolean默认:false,是否开启鼠标缩放和平移漫游。
    • label?{show?,...},图形上的文本标签,可用于说明图形的一些数据信息,比如值,名称等。
    • aspectScale?number默认:0.75,用于缩放地图的长宽比。
    • itemStyle?{areaColor?,borderColor?,...},地图区域的多边形图形样式。
      • areaColor?Color默认:#eee,地图区域的颜色。
      • borderColor?Color默认:#000,图形的描边颜色。
    • emphasis?{itemStyle,label,...},高亮状态下的多边形和标签样式。
  • series[{type,data,name?,label?,itemStyle?,emphasis?,coordinateSystem?,...}],系列,配置系列图表的类型和图形信息数据
    • 公共属性:
    • typeline | bar | pie | scatter | effectScatter | map | ...,指定系列图表的类型,比如:折线图、柱状图、饼图、散点图、地图等。
    • data[],系列中的数值内容数组。数组中的每一项称为数据项 。数据类型有如下写法:
      • [value,...]: 一维数组。一维数组是二维数组的简写。
      • [[index, value], ...]:二维数组。注意index从0开始。
      • [[x, y, value], ...]:二维数组。x、y可以表示x、y 轴,常用于表示经度、纬度
      • [{value: y轴值, name: x轴值, label?: {}, itemStyle?: {}, emphasis?: {}, ...}, ...]:对象类型(推荐)。
    • name?string,系列名称,用于tooltip的显示,legend的图例筛选等
    • label?{show?,position?,color?,fontSize?},图形上的文本标签。就近原则,data 中的比 series 优先级高。
    • itemStyle?{color?, border*?, opacity?, shadow*?},图形样式。还可以写在series.data中
    • emphasis?{disabled?, focus?, label?, itemStyle?},高亮的图形样式和标签样式。还可以写在series.data中
    • coordinateSystem?cartesian2d | polar | geo默认:cartesian2d ,该系列使用的坐标系,默认值为二维的直角坐标系(笛卡尔坐标系)
      • cartesian2d:二维的直角坐标系(笛卡尔坐标系)。
      • polar:极坐标系。
      • geo:地理坐标系。常用在地图的散点图中。
    • bar属性:
    • barWidth?number默认:自适应 ,柱条的宽度,不设时自适应。
    • line属性:
    • smooth?boolean默认:false ,是否平滑曲线显示。
    • showSymbol?boolean默认:true ,是否显示 symbol标记。
    • symbolSize?number默认:4 ,标记的大小。
    • areaStyle?{color?,,...},区域填充样式。设置后显示成区域面积图。
    • pie属性:
    • center?[x, y]默认:[50%, 50%]] ,饼图的中心(圆心)x、y坐标。
    • radius?number | string | [内半径, 外半径]默认:[0, '75%'] ,饼图的半径。
    • roseType?false | radius | area默认:false,是否展示成南丁格尔图,通过半径区分数据大小。
      • 'radius':扇区圆心角展现数据的百分比,半径展现数据的大小。
      • 'area':所有扇区圆心角相同,仅通过半径展现数据大小。
    • 地图:
    • geoIndex?number,指定一个geo组件。map和其他series(例如散点图)就可以共享一个geo组件了。

color

  • color{type,x,y,x2,y2,colorStops},线性渐变。
    • typelinear ,渐变类型:线性渐变。
    • x,ynumber, number,渐变的起点坐标。
    • x2,y2number, number,渐变的终点坐标。
    • colorStops[offset,color],渐变颜色停靠点。
      • offsetnumber,表示颜色停靠点的位置。介于0-1之间的数字,0表示渐变的起点,1表示渐变的终点
      • colorColor,要应用的颜色,可以是任意有效的 CSS 颜色值。
  • color{type,x,y,r,colorStops},径向渐变。
    • typeradial ,渐变类型:径向渐变。
    • x,ynumber, number,圆心坐标。
    • rnumber,圆半径。
    • colorStops[offset,color],渐变颜色停靠点。
      • offsetnumber,表示颜色停靠点的位置。介于0-1之间的数字,0表示渐变的起点,1表示渐变的终点
      • colorColor,要应用的颜色,可以是任意有效的 CSS 颜色值。
  • color{image,repeat},纹理填充。
    • imageHTMLImageElement | HTMLCanvasElement,图片元素。
    • repeatrepeat | repeat-x | repeat-y | no-repeat默认:repeat,是否平铺。