Apache ECharts is a powerful, interactive charting and data visualization library for browser

npm install echarts


Apache ECharts


Apache ECharts is a free, powerful charting and visualization library offering an easy way of adding intuitive, interactive, and highly customizable charts to your commercial products. It is written in pure JavaScript and based on zrender, which is a whole new lightweight canvas library.


License Latest npm release NPM downloads Contributors

Build Status

Get Apache ECharts

You may choose one of the following methods:


Get Help


Build echarts source code:

Execute the instructions in the root directory of the echarts: (Node.js is required)

# Install the dependencies from NPM:
npm install

# Rebuild source code immediately in watch mode when changing the source code.
npm run dev

# Check correctness of TypeScript code.
npm run checktype

# If intending to build and get all types of the "production" files:
npm run release

Then the "production" files are generated in the dist directory.


If you wish to debug locally or make pull requests, please refer to the contributing document.


Awesome ECharts




ECharts is available under the Apache License V2.

Code of Conduct

Please refer to Apache Code of Conduct.


Deqing Li, Honghui Mei, Yi Shen, Shuang Su, Wenli Zhang, Junting Wang, Ming Zu, Wei Chen. ECharts: A Declarative Framework for Rapid Construction of Web-based Visualization. Visual Informatics, 2018.

Release Notes

By Wenli Zhang • Published on June 14, 2022
  • [Feature] [bar] add new stacking strategies. #17086 (villebro)
  • [Feature] [tree] tree focus supports relative. #17009 (susiwen8)
  • [Feature] [visualMap] selectedMode supports boolean. #16972 (susiwen8)
  • [Feature] [graph] [tree] [map] series center of view supports string. #16904 (susiwen8)
  • [Fix] [line] fix polygon not being updated when switching from line chart to step line chart with notMerge: true. #16772 (jiawulin001)
  • [Fix] [tree] fix radial tree with a single root not working. #16950 (fuchunhui)
  • [Fix] [tree] fix unexpected expanded children when edgeShape is polyline. #16548 (linghaoSu)
  • [Fix] [graph] fix user cursor setting not being respected. #16867 (susiwen8)
  • [Fix] [graph] fix autoCurveness type. #16897 (kongmoumou)
  • [Fix] [radar] fix names being - in tooltip when name.show is false. #15985 (Ovilia)
  • [Fix] [radar] fix regression bug brought by branch merging. #16764 (plainheart)
  • [Fix] [geo] fix linesGL series not render. #17150 (plainheart)
  • [Fix] [pictorialBar] improve PictorialBarSeriesOption type definition. #17155 (dmzc)
  • [Fix] [tooltip] fix content changes with axis extent when 'triggerOn' set to 'click'. #16939 (jiawulin001)
  • [Fix] [dataZoom] fix borderColor may not work in some bundle environments. #16854 (Ling310)
  • [Fix] [markLine] fix markLine label showing wrong tooltip content. #16971 (plainheart)
  • [Fix] [markArea] fix markArea may be filtered unexpectedly. #16861 (jiawulin001)
  • [Fix] [axis] fix {yy} not being padded to 2 digits. #17064 (Fritzbox2000)
  • [Fix] [axis] fix quarters splitting the year into 4 quarters not 3. #17073 (Fritzbox2000)
  • [Fix] [axis] fix custom series not working on singleAxis. #16850 (benlongo)
  • [Fix] [graphic] fix some options may be unexpectedly reset on update. #17007 (plainheart)
  • [Fix] [decal] fix pattern not changing after set legend.itemStyle.decal to be 'none'. #16922 (jiawulin001)
  • [Fix] [radialGradient] add safe guarding for radial gradient. #898. #919 (lefex) (Ovilia)
  • [Fix] [types] fix typo in DataStore. #16824 (XXXMrG)
By Wenli Zhang • Published on June 10, 2022

Release 5.3.3-rc.1

By Zhongxiang Wang • Published on April 1, 2022
  • [Feature] [line] allow areaStyle.origin to take number as input. #16719 (jiawulin001)
  • [Feature] [scatter] scale support number. #16688 (susiwen8)
  • [Feature] [tree] add collapsed to tree click event parameters. #16660 (susiwen8)
  • [Fix] [marker] fix marker state doesn't restore after blurring. #16670 (susiwen8)
  • [Fix] [gauge] fix progress bar may become unexpectedly circle when value is 0 and progress.roundCap is enabled. #16653 (plainheart)
  • [Fix] [polar] fix chart throws errors when splitLine is enabled in radius axis. #16736 (plainheart)
  • [Fix] [labelLine] fix labelLine can't be hidden. #16542 (susiwen8)
  • [Fix] [dataZoom] fix dataZoom was unexpectedly displayed at the top when data contains null values. #16730 (yuanjiangxia)
  • [Fix] [heatmap] fix unexpected gaps in heatmap charts. #16714 (plainheart)
  • [Fix] [toolbox] fix toolbox title may be outside of the chart. #16704 (plainheart)
  • [Fix] [toolbox] toolbox doesn't enter emphasis state when hovering on the icon. #16702 (plainheart)
  • [Fix] [toolbox] [dataview] fix unexpected scrollbar and outline when using default textview. #16691 (plainheart)
  • [Fix] [visualMap] fix some text style can't work on visualMap. #16679 (fuchunhui)
  • [Fix] [line] fix line graph renders null value incorrectly. #16672 (WindyZ99)
  • [Fix] [sanky] fallback to black if color is illegal. #16614 (susiwen8)
  • [Fix] [types] fix wrong jpg instead of jpeg image export types. #16747 (yassilah)
By Zhongxiang Wang • Published on March 28, 2022

Release 5.3.2-rc.1

By Wenli Zhang • Published on March 7, 2022
  • [Feature] [i18n] Add korean translation #16582 (hijae)
  • [Feature] [heatmap] Add borderRadius option to heatmap. #16493 (Rain120)
  • [Fix] [lines] Fix potential memory leak in the effect line when setOption with notMerge. #16525 (pissang)
  • [Fix] [line] Fix stepped line charts with empty data. #16435 (Gyyi)
  • [Fix] [line] Fix empty data in lttb sampling. #16431 (fuchunhui)
  • [Fix] [tooltip] Changing default time formatter to be in 24-hour format. #16421 (Comee)
  • [Fix] [graphic] Fix cursor doesn't work in graphic component. #16513 (plainheart)
  • [Fix] [pictorialBar] Fix pictorialBar data with value of 0. #16469 (fuchunhui)
  • [Fix] [svg] Fix render bug when using decal. #889 (pissang)
  • [Fix] [tooltip] Fix legend.tooltip.enterable and tooltip.enterable. #16463 (fuchunhui)
  • [Feature] [event] Provide label index in axis events #16187 (Ovilia)
  • [Fix] [sunburst] Centering labels of sunburst at the first level. #16425 (FrankChencc)
  • [Fix] [tooltip] Hide tooltip when data view is open. #16321 (plainheart)
  • [Fix] Fix sampling with zero width charts. #16372 (Cuiyansong)
By Wenli Zhang • Published on March 4, 2022

Release 5.3.1-rc.1

By sushuang • Published on January 26, 2022
  • [Feature] Introduce new keyframe based animation to graphic component and custom series. #16225 (pissang)
  • [Feature] Support transition animation in the graphic component. #16225 (pissang)
  • [Feature] [svg] Refactor SVG renderer. Improved SVG rendering performance by 2x ~ 10x. #836 (pissang)
  • [Feature] [svg] Add SVG server-side rendering with zero dependencies. #15880 (pissang)
  • [Feature] [axis] Add alignTicks for mutliple axis alignment. #16300 (pissang)
  • [Feature] [state] Add select.disabled to disable select state. #15534 (susiwen8)
  • [Feature] [state] Add selectedMode: 'series' to select the whole series. #15534 (susiwen8)
  • [Feature] [state] Add emphasis.disabled to disable emphasis state. #16368 (pissang)
  • [Feature] [map] Introduce projection to map series and geo component. #16364 (pissang)
  • [Feature] [geo] Support LineString and MultiLineString in GeoJSON source. #16364 (pissang)
  • [Feature] [tooltip] Add valueFormatter in the tooltip. #16332 (pissang)
  • [Feature] [pie] [sunburst] Supports configuring radius on the four corners of sector. #16298 (plainheart)
  • [Feature] [i18n] Add Italian translation. #16211 (andrearoota)
  • [Feature] [i18n] Add Romanian translation. #15990 (szilard-dobai)
  • [Fix] [graph] Fix error when symbol is none. #16394 (pissang)
  • [Fix] [dataset] Fix sourceHeader: false may not work. #16376 (lefex)
  • [Fix] [tooltip] Fix the page will be frozen if multiple tooltips are provided. #16347 (plainheart)
  • [Fix] [bar] Optimizing bar layout in the large mode. Fix stacked bar when large is enabled. #16338 (pissang)
  • [Fix] [bar] Fix stacked bar on the log axis. #16338 (pissang)
  • [Fix] [pie] Optimize label layout and text wrapping #16034 (Ovilia)
  • [Fix] [polar] Fix edge symbols are clipped unexpectedly for the tiny offset. #16329 (plainheart)
  • [Fix] [map] Fix some labels won't be shown when legend is enabled and no label formatter specified. #16322 (plainheart)
  • [Fix] [pie] Fix tangential rotation with startAngle. #16307 (Ovilia)
  • [Fix] [graph] Support using dataType param to highlight edge by dispatchAction. #16243 (Dingzhaocheng)
  • [Fix] [pie] Fix label of first sector may not shown. #16229 (116050423)
  • [Fix] [tooltip] Fix tooltip lagging when transition is disabled. #16212 (plainheart)
  • [Fix] [axis] Fix axis label width not affect the grid layout. #16203 (Ovilia)
  • [Fix] [lines] fix NPE issue when lines series has no coordinate system. #16184 (plainheart)
  • [Fix] [line] Fix using endLabel may throw excpetion when series is totally filtered. #16339 (pissang)
  • [Fix] [dataZoom] Optimize shadow render performance when dragging on the chart. #16070 (pissang)
  • [Fix] [line] Fix bezier points calculated wrong when monotone smooth is used. #16069 (pissang)
  • [Fix] [line] Fix tooltip not shown when all values are null #16001 (kongmoumou)
  • [Fix] [axis] Fix scale on the log axis. #15998 (susiwen8)
  • [Fix] [radar] Fix tooltip displayed wrong when name.show is false. #15985 (Ovilia)
  • [Fix] [progressive] Optimize progressive rendering performance #15870 (pissang)
  • [Fix] [svg] Fix rect path can't be closed bug.
  • [Fix] [svg] Normalize color when using SVG renderer to support more cases. #767 (plainheart)
  • [Fix] [pictorialBar] Fixed incorrectly display when data is 0 and border is used. #12793 (yanheSu)
  • [Fix] [map] Optimize default label position calculation. Use centroid of the largest area. #16364 (pissang)
  • [Fix] [animation] Fix opacity may be wrong when set divideShape: 'clone' in the universal transition #16250 (pissang)
  • [Fix] [bar] Optimize morphing on the bar with rounded cap. #16246 (pissang)
  • Add .js extension in the import statement #16276 (pissang)
By Yi Shen • Published on November 1, 2021
  • [Feature] [line] Add triggerLineEvent. Support trigger mouse event on polyline and polygon area. #15847 (susiwen8)
  • [Feature] [i18n] Add Russian translation. #15867 (finkrer)
  • [Feature] [i18n] Add Polish translation. #15891 (CaelumNigre)
  • [Fix] [line] fix smoothed line with duplicate points failed to draw #15942 (pissang)
  • [Fix] [line] Fix visual gradient is wrong when coords are between two stops. #15938 (pissang)
  • [Fix] [calendar] Fix i18n doesn't work in the calendar coordinate system #15935 (plainheart)
  • [Fix] [bar] Fix label value animation is not accurate in the bar racing case. #15916 (Ovilia)
  • [Fix] [axis] fix charts render abnormally when yAxis.max is set to be a value less than the min value of the series data. #15878 (plainheart)
  • [Fix] [tooltip] Fix boolean value display. #15869 (Ovilia)
  • [Fix] [types] Add undefined to the return type of getInstanceByDom and getInstanceById #15913 (plainheart)
By Yi Shen • Published on September 21, 2021
  • [Feature] [i18n] Adding pt-BR (Portuguese, Brazil) lang. #15722 (williamorim)
  • [Feature] [axis] add axisLabel.hideOverlap. #15583 (svedova) #15712 (pissang)
  • [Feature] [sunburst] Add radius in levels #15706 (Ovilia)
  • [Fix] [line] Fix animation may be wrong when data changes lot. #15731 (pissang)
  • [Fix] [legend] Fix icon not keep aspect. #15720 (pissang)
  • [Fix] [line] Optimize line gradient leaks on the edge when the range is large. #15711 (pissang)
  • [Fix] [marker] Fix markLine, markPoint and markArea may not work on time axis if use string time data #15686 (100pah)
  • [Fix] [tooltip] Fix tooltip may be lagging and shaking in Chrome(with the devtools open) and Firefox. #15683 (plainheart)
  • [Fix] [svg] Fix svg mouse event doesn't work normally in Firefox when using shadow. #812 (plainheart)
  • [Fix] [line] Not stop existing expand animation when update. #15599 (Ovilia)
  • [Fix] [geo] Fix href attribute not work in SVG source. #803 (plainheart)
  • [Fix] [polar] Fix wrong sector clockwise when previous data is 0. #15589 (Ovilia)
  • [Fix] [type] Improve option types. #15696 (pissang)
  • [Fix] Fix prototype pollution. GHSA-fhv8-fx5f-7fxf
By sushuang • Published on September 1, 2021


Break Changes

All Changes

  • [Feature] Introduce universal transition to all series. #15208 (pissang)
  • [Feature] [color] Add series.colorBy #13788 (Ovilia)
  • [Feature] [label] Support sector label positions for polar bars #774 (Ovilia)
  • [Feature] [effectScatter] Add rippleEffect.number #15335 (plainheart)
  • [Feature] [gauge] Add pointer.showAbove to allow pointer show above the title and details. #15337 (AmosChenYQ) #15326 (susiwen8)
  • [Feature] [emphasis] emphasis.color can use 'inherit' to be not higlighted. #15172 (Foreverwzh)
  • [Feature] [pie] Display an empty cicle when pie don't have value. #15095 (ssthouse)
  • [Fix] [dataset] Fix dataset performance drops signifcantly on high dimensions data. #15355 (pissang)
  • [Fix] [axis] Optimize format in time axis #15465 (leavest) #15434 (zhiyuc123)
  • [Fix] [custom] Optimize text font compatibility with legacy code. #15454 (AmosChenYQ)
  • [Fix] [memory] Optimize memory when chart instance is still hold after dispose #15417 (pissang)
  • [Fix] [line] Optimize color gradient when having infinite value. #15416 (plainheart)
  • [Fix] [date] Optimize date parsing #15410 (quillblue)
  • [Fix] [line] Fix render bug. #788 (pissang)
  • [Fix] [candlestick] Fix style lost after update #15368 (pissang)
  • [Fix] [sankey] Gradient should follow orient. #15363 (susiwen8)
  • [Fix] [tooltip] Fix tooltip formatter doesn't renders HTMLElement if tooltip position is specified. #15313 (plainheart)
  • [Fix] [tooltip] Tooltip should clear content when formatter returns null. #15313 (plainheart)
  • [Fix] [bar] Set label to be inside when position is 'middle' #15309 (Ovilia)
  • [Fix] [marker] Fix 'clampData' undefined error in 'getMarkerPosition' #15297 (AmosChenYQ)
  • [Fix] [treemap] Fix old nodes not removed when disabled animation #15283 (villebro)
  • [Fix] [tree] Fix edge may not removed when update data #15251 (ssthouse)
  • [Fix] [pie/sunburst] Fix borderRadius can't be reset in pie series and sunburst series when setting it to null or undefined #15243 (plainheart)
  • [Fix] [canvas] Fix unexpected none or null fillStyle may be warned in firefox #784 (plainheart)
  • [Fix] [highlight] Hightlight multiple series through chart.dispatchAction not work as expected #15207 (ssthouse)
  • [Fix] [sankey] Fix drag bug when using series.nodes to represent data. #15199 (DuLinRain)
  • [Fix] [svg] Optimize exported SVG compatibility for Powerpoint. #767 (plainheart)
  • [Fix] [legend] Fix text.lineHeight not work #773 (ssthouse)
  • [Fix] [pie] Change the default borderJoin to round. #15145 (plainheart)
  • [Fix] [radar] Change the default borderJoin to round. #15381 (Ovilia)
  • [Fix] [treemap] Fix label.show set to false will throw error #15141 (susiwen8)
  • [Fix] [pictorialBar] Fix pictorialBar zero value label display. #15132 (ssthouse)
  • [Fix] [lines] Fix lines can't be cleared by chart.clear() #15088 (plainheart)
  • [Fix] [endLabel] Fix endLabel not display when only set emphasis.show to true. #15072 (Ovilia)
  • [Fix] [svg] Fix rect path not closed. #767 (plainheart)
  • [Fix] [treemap] Add treeAncestors in callback params #14976 (pissang)
  • [Fix] [tree] Fix error when running setOption twice with different data #14930 (Map1en)
  • [Fix] [radar] Fix radar symbol border is scaled #15396 (pissang)
  • [Fix] [marker] Fix symbolOffset and symbolKeepAspect doesn't work in markPoint. #14737 (plainheart)
  • [Fix] [gauge] Fix data index and series index is missing. #14688 (yufeng04)
  • [Fix] [tooltip] Tooltip arrow will follow borderWidth. #14393 (g7i)
  • [Fix] [geo] Fix geo switch from hidden to show fail. #15361 (pissang)
  • [Fix] [type] Optimize type of renderItem in custom series.
  • [Fix] [type] Optimize option type of echarts.init. #15487 (John60676)
  • [Fix] [type] There is no polarIndex when coordinate of series is polar #15281 (Map1en)
  • [Fix] [type] Optimize type when using SVG source in geo component. #15263 (leosxie)
  • [Fix] [type] Fix wrong type for pie data and map data. #15144 (plainheart)


Typescript Types


GitHub Stargazers
Community Interest
Number of Forks


Last Commit
Open Issues
Closed Issues
Open Pull Requests
Closed Pull Requests


Versions Released
Latest Version Released
Jun 14, 2022
Current Tags


Commits: 2,423
Commits: 1,828
Commits: 1,113
Commits: 499
Commits: 170
Commits: 170
Commits: 149
Commits: 40
Commits: 30
Commits: 25
Commits: 23
Commits: 22
Commits: 20
Commits: 20
Commits: 19