这是我参与8月更文挑战的第24天,活动详情查看: 8月更文挑战
1. 安装echarts-for-react插件(两个都要装)
npm install echarts-for-react
npm install echarts
复制代码
2. 导入ReactEcharts库
import ReactECharts from 'echarts-for-react';
复制代码
3. 渲染ReactEcharts组件,并通过option导入数据
<ReactECharts option={this.getOption(sales,stores)} />
复制代码
4. 设置数据源option
getOption = (sales,stores) => {
return {
title: {
text: 'ECharts 入门示例'
},
tooltip: {},
legend: {
data: ['销量', '库存']
},
xAxis: {
data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: [1,2,3,4],
}, {
name: '库存',
type: 'bar',
data: [2,5,4,6]
}]
}
}
复制代码
如何将柱状图改为折线图
只需将series的对象中的type更改为line即可。
getOption = (sales,stores) => {
return {
title: {
text: 'ECharts 入门示例'
},
tooltip: {},
legend: {
data: ['销量', '库存']
},
xAxis: {
data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
},
yAxis: {},
series: [{
name: '销量',
type: 'line',
data: sales,
}, {
name: '库存',
type: 'line',
data: stores
}]
}
}
复制代码
柱状图和折线图的实现效果,如下图所示
如何修改柱状图的颜色
通过在option中设置color属性,既可以进行全局的样式柱状图颜色修改,也可以局部的修改某一个柱状图的颜色。更多的属性设置需要去查官方文档或者根据官方的实例进行修改。
示例代码
option = {
// 全局调色盘。
color: ['#c23531','#2f4554', '#61a0a8', '#d48265', '#91c7ae','#749f83', '#ca8622', '#bda29a','#6e7074', '#546570', '#c4ccd3'],
series: [{
type: 'bar',
// 此系列自己的调色盘。
color: ['#dd6b66','#759aa0','#e69d87','#8dc1a9','#ea7e53','#eedd78','#73a373','#73b9bc','#7289ab', '#91ca8c','#f49f42'],
...
}, {
type: 'pie',
// 此系列自己的调色盘。
color: ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C','#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'],
...
}]
}
复制代码
Echarts的按需引入
import React from 'react';
import {Card} from 'antd';
import echartTheme from './../themeLight'
//不是按需加载的话文件太大
//import echarts from 'echarts'
//下面是按需加载
import echarts from 'echarts/lib/echarts'
//导入折线图
import 'echarts/lib/chart/line'; //折线图是line,饼图改为pie,柱形图改为bar
import 'echarts/lib/component/tooltip';
import 'echarts/lib/component/title';
import 'echarts/lib/component/legend';
import 'echarts/lib/component/markPoint';
import ReactEcharts from 'echarts-for-react';
export default class Line extends React.Component{
componentWillMount(){
//主题的设置要在willmounted中设置
echarts.registerTheme('Imooc',echartTheme);
}
getOption =()=> {
let option = {
title:{
text:'用户骑行订单',
x:'center'
},
tooltip:{
trigger:'axis',
},
xAxis:{
data:['周一','周二','周三','周四','周五','周六','周日']
},
yAxis:{
type:'value'
},
series:[
{
name:'OFO订单量',
type:'line', //这块要定义type类型,柱形图是bar,饼图是pie
data:[1000,2000,1500,3000,2000,1200,800]
}
]
}
return option
}
render(){
return(
<div>
<Card title="折线图表之一">
<ReactEcharts option={this.getOption()} theme="Imooc" style={{height:'400px'}}/>
</Card>
</div>
)
}
}
复制代码