• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

echarts-for-react: ⛳️ 一个简单的 Apache echarts 的 React 封装。

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

echarts-for-react

开源软件地址:

https://gitee.com/hustcc/echarts-for-react

开源软件介绍:

echarts-for-react

The simplest, and the best React wrapper for Apache ECharts.

npmBuild StatusCoverageNPM downloadsLicenseECharts VerReact Ver

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

Then use it.

import ReactECharts from 'echarts-for-react';// render echarts option.<ReactECharts option={this.getOption()} />

You can run website.

$ git clone [email protected]:hustcc/echarts-for-react.git$ npm install$ npm start

Then open http://127.0.0.1:8081/ in your browser. or see https://git.hust.cc/echarts-for-react/ which is deploy on gh-pages.

Usage

Code of a simple demo code showed below. For more example can see: https://git.hust.cc/echarts-for-react/

import React from 'react';import ReactECharts from 'echarts-for-react';  // or var ReactECharts = require('echarts-for-react');<ReactECharts  option={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:

import React from 'react';// import the core library.import ReactEChartsCore from 'echarts-for-react/lib/core';// Import the echarts core module, which provides the necessary interfaces for using echarts.import * as echarts from '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.<ReactEChartsCore  echarts={echarts}  option={this.getOption()}  notMerge={true}  lazyUpdate={true}  theme={"theme_name"}  onChartReady={this.onChartReadyCallback}  onEvents={EventsDict}  opts={}/>

With Echarts.js v3 or v4:

import React from 'react';// import the core library.import ReactEChartsCore from 'echarts-for-react/lib/core';// then import echarts modules those you have used manually.import echarts from '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.<ReactEChartsCore  echarts={echarts}  option={this.getOption()}  notMerge={true}  lazyUpdate={true}  theme={"theme_name"}  onChartReady={this.onChartReadyCallback}  onEvents={EventsDict}  opts={}/>

Props of Component

  • option (required, object)

the echarts option config, can see https://echarts.apache.org/option.html#title.

  • notMerge (optional, object)

when setOption, not merge the data, default is false. See https://echarts.apache.org/api.html#echartsInstance.setOption.

  • lazyUpdate (optional, object)

when setOption, lazy update the data, default is false. See https://echarts.apache.org/api.html#echartsInstance.setOption.

  • style (optional, object)

the style of echarts div. object, default is {height: '300px'}.

  • className (optional, string)

the class of echarts div. you can setting the css style of charts by class name.

  • theme (optional, string)

the theme of echarts. string, should registerTheme before use it (theme object format: https://github.com/ecomfe/echarts/blob/master/theme/dark.js). e.g.

// import echartsimport echarts from 'echarts';...// register theme objectecharts.registerTheme('my_theme', {  backgroundColor: '#f4cccc'});...// render the echarts use option `theme`<ReactECharts  option={this.getOption()}  style={{height: '300px', width: '100%'}}  className='echarts-for-echarts'  theme='my_theme' />
  • onChartReady (optional, function)

when the chart is ready, will callback the function with the echarts object as it's paramter.

  • loadingOption (optional, object)

the echarts loading option config, can see https://echarts.apache.org/api.html#echartsInstance.showLoading.

  • showLoading (optional, bool, default: false)

bool, when the chart is rendering, show the loading mask.

  • onEvents (optional, array(string=>function) )

binding the echarts event, will callback with the echarts event object, and the echart object as it's paramters. e.g:

const onEvents = {  'click': this.onChartClick,  'legendselectchanged': this.onChartLegendselectchanged}...<ReactECharts  option={this.getOption()}  style={{ height: '300px', width: '100%' }}  onEvents={onEvents}/>

for more event key name, see: https://echarts.apache.org/api.html#events

  • opts (optional, object)

the opts of echarts. object, will be used when initial echarts instance by echarts.init. Document here.

<ReactECharts  option={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<ReactECharts  ref={(e) => { this.echartRef = e; }}  option={this.getOption()}/>// then get the `ReactECharts` use this.echarts_reactconst echartInstance = this.echartRef.getEchartsInstance();// then you can use any API of echarts.const base64 = echartInstance.getDataURL();

About API of echarts, can see https://echarts.apache.org/api.html#echartsInstance.

You can use the API to do:

  1. binding / unbinding event.
  2. dynamic charts with dynamic data.
  3. get the echarts dom / dataURL / base64, save the chart to png.
  4. release the charts.

FAQ

How to render the chart with svg when using echarts 4.x

Use the props opts of component with renderer = 'svg'. For example:

<ReactECharts  option={this.getOption()}  style={{height: '300px'}}  opts={{renderer: 'svg'}} // use svg to render the chart./>

How to resolve Error Component series.scatter3D not exists. Load it first.

Install and import echarts-gl module when you want to create a GL instance

npm install --save echarts-gl
import 'echarts-gl'import ReactECharts from "echarts-for-react";<ReactECharts  option={GL_OPTION}/>

LICENSE

MIT@hustcc.


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap