The simplest, and the best React wrapper for Apache ECharts.
Install
$ npm install --save echarts-for-react
# `echarts` is the peerDependence of `echarts-for-react`, you can install echarts with your own version.
$ npm install --save echarts
importReactfrom'react';importReactEChartsfrom'echarts-for-react';// or var ReactECharts = require('echarts-for-react');<ReactEChartsoption={this.getOption()}notMerge={true}lazyUpdate={true}theme={"theme_name"}onChartReady={this.onChartReadyCallback}onEvents={EventsDict}opts={}/>
Import ECharts.js modules manually to reduce bundle size
With Echarts.js v5:
">
importReactfrom'react';// import the core library.importReactEChartsCorefrom'echarts-for-react/lib/core';// Import the echarts core module, which provides the necessary interfaces for using echarts.import*asechartsfrom'echarts/core';// Import charts, all with Chart suffiximport{// LineChart,BarChart,// PieChart,// ScatterChart,// RadarChart,// MapChart,// TreeChart,// TreemapChart,// GraphChart,// GaugeChart,// FunnelChart,// ParallelChart,// SankeyChart,// BoxplotChart,// CandlestickChart,// EffectScatterChart,// LinesChart,// HeatmapChart,// PictorialBarChart,// ThemeRiverChart,// SunburstChart,// CustomChart,}from'echarts/charts';// import components, all suffixed with Componentimport{// GridSimpleComponent,GridComponent,// PolarComponent,// RadarComponent,// GeoComponent,// SingleAxisComponent,// ParallelComponent,// CalendarComponent,// GraphicComponent,// ToolboxComponent,TooltipComponent,// AxisPointerComponent,// BrushComponent,TitleComponent,// TimelineComponent,// MarkPointComponent,// MarkLineComponent,// MarkAreaComponent,// LegendComponent,// LegendScrollComponent,// LegendPlainComponent,// DataZoomComponent,// DataZoomInsideComponent,// DataZoomSliderComponent,// VisualMapComponent,// VisualMapContinuousComponent,// VisualMapPiecewiseComponent,// AriaComponent,// TransformComponent,DatasetComponent,}from'echarts/components';// Import renderer, note that introducing the CanvasRenderer or SVGRenderer is a required stepimport{CanvasRenderer,// SVGRenderer,}from'echarts/renderers';// Register the required componentsecharts.use([TitleComponent,TooltipComponent,GridComponent,BarChart,CanvasRenderer]);// The usage of ReactEChartsCore are same with above.<ReactEChartsCoreecharts={echarts}option={this.getOption()}notMerge={true}lazyUpdate={true}theme={"theme_name"}onChartReady={this.onChartReadyCallback}onEvents={EventsDict}opts={}/>
With Echarts.js v3 or v4:
">
importReactfrom'react';// import the core library.importReactEChartsCorefrom'echarts-for-react/lib/core';// then import echarts modules those you have used manually.importechartsfrom'echarts/lib/echarts';// import 'echarts/lib/chart/line';import'echarts/lib/chart/bar';// import 'echarts/lib/chart/pie';// import 'echarts/lib/chart/scatter';// import 'echarts/lib/chart/radar';// import 'echarts/lib/chart/map';// import 'echarts/lib/chart/treemap';// import 'echarts/lib/chart/graph';// import 'echarts/lib/chart/gauge';// import 'echarts/lib/chart/funnel';// import 'echarts/lib/chart/parallel';// import 'echarts/lib/chart/sankey';// import 'echarts/lib/chart/boxplot';// import 'echarts/lib/chart/candlestick';// import 'echarts/lib/chart/effectScatter';// import 'echarts/lib/chart/lines';// import 'echarts/lib/chart/heatmap';// import 'echarts/lib/component/graphic';// import 'echarts/lib/component/grid';// import 'echarts/lib/component/legend';import'echarts/lib/component/tooltip';// import 'echarts/lib/component/polar';// import 'echarts/lib/component/geo';// import 'echarts/lib/component/parallel';// import 'echarts/lib/component/singleAxis';// import 'echarts/lib/component/brush';import'echarts/lib/component/title';// import 'echarts/lib/component/dataZoom';// import 'echarts/lib/component/visualMap';// import 'echarts/lib/component/markPoint';// import 'echarts/lib/component/markLine';// import 'echarts/lib/component/markArea';// import 'echarts/lib/component/timeline';// import 'echarts/lib/component/toolbox';// import 'zrender/lib/vml/vml';// The usage of ReactEChartsCore are same with above.<ReactEChartsCoreecharts={echarts}option={this.getOption()}notMerge={true}lazyUpdate={true}theme={"theme_name"}onChartReady={this.onChartReadyCallback}onEvents={EventsDict}opts={}/>
the opts of echarts. object, will be used when initial echarts instance by echarts.init. Document here.
<ReactEChartsoption={this.getOption()}style={{height: '300px'}}opts={{renderer: 'svg'}}// use svg to render the chart./>
Component API & Echarts API
the Component only has one API named getEchartsInstance.
getEchartsInstance() : get the echarts instance object, then you can use any API of echarts.
for example:
// render the echarts component below with rel<ReactEChartsref={(e)=>{this.echartRef=e;}}option={this.getOption()}/>// then get the `ReactECharts` use this.echarts_reactconstechartInstance=this.echartRef.getEchartsInstance();// then you can use any API of echarts.constbase64=echartInstance.getDataURL();
To facilitate testing and better integrate into the DOM, it would be helpful to be able to pass standard HTML div attributes such as id, as well as HTML5 data attributes such as the data-testid attribute used by React Testing Library, to the ReactECharts component and have them appear on the <div>.
I am trying to scroll the stackhorizontal bar chart when there are multiple labels are available under Yaxis.
By scroll means I am trying to show five data and then next remaining data available under yaxis.
LayaAir is an open-source 2D/3D engine. LayaAir Engine is designed for high performance games.LayaAir support TypeScript and JavaScript、ActionScript 3.0 programming language.Can develop once, publish for multi platform.