vue项目中使用 echarts 统计图
1.安装echarts依赖$ npm install echarts -s2.main.js全局引入// 引入echartsimport echarts from 'echarts'Vue.prototype.$echarts = echarts3.创建一个存放图表的容器<div id="chartbox"></div>4.绘制图表export de...
·
1.安装echarts依赖
$ npm install echarts -s
2.main.js全局引入
// 引入echarts
import echarts from 'echarts'
Vue.prototype.$echarts = echarts
3.创建一个存放图表的容器
<div ref="chartbox"></div>
4.绘制图表
export default {
data () {
return {}
},
mounted(){
this.drawLine();
},
methods: {
drawLine(){
//1.设置参数对象
var option = {
title:{
text:'ECharts 数据统计'
},
tooltip:{},
legend:{
data:["A类", "B类"]
},
xAxis:{
data:["衣服","裤子","袜子","鞋子"]
},
yAxis:{},
series:[{
name:'销量',
type:'bar', //bar柱状图,line折线图
data:[500,200,360,100]
}]
};
//2.初始化echarts实例
var myChart = this.$echarts.init(this.$refs.chartbox);
//3.挂载指定图表对象
myChart.setOption(option);
//4.窗口大小改变立马重新渲染自适应
window.addEventListener("resize", function() {
myChart.resize();
});
},
}
}
附1:解决在elementui布局中使用echarts统计图不显示的问题
因为elementui中dialog组件是懒渲染的,需要在open事件里面初始化echarts
- 1.在dialog中使用open方法
<el-col :span="24" :offset="0" :xs="{span:24,offset:0}" @open="open()">
<div ref="chartbox"></div>
</el-col>
- 2.在定时函数setTimeout中执行方法
methods: {
open() {
const t = this;
setTimeout(() => {
t.drawLine(); // 执行echarts画图方法
}, 0);
},
}
附2:按需引入
全局引入会将所有的echarts图表打包,导致体积过大,可以采用按需引入减小项目体积。
子组件:
// 引入基本模板
let echarts = require('echarts/lib/echarts')
// 引入柱状图组件
require('echarts/lib/chart/bar')
// 引入提示框和title组件
require('echarts/lib/component/tooltip')
require('echarts/lib/component/title')
export default {
data () {
return {}
},
mounted(){
this.drawLine();
},
methods: {
drawLine(){
//1.设置参数对象
var option = {
title:{
text:'ECharts 数据统计'
},
tooltip:{},
legend:{
data:["A类", "B类"]
},
xAxis:{
data:["衣服","裤子","袜子","鞋子"]
},
yAxis:{},
series:[{
name:'销量',
type:'bar', //bar柱状图,line折线图
data:[500,200,360,100]
}]
};
//2.初始化echarts实例,子组件按需引入不用this.$echarts,直接echarts调用
var myChart = echarts.init(this.$refs.chartbox);
//3.挂载指定图表对象
myChart.setOption(option);
//4.窗口大小改变立马重新渲染自适应
window.addEventListener("resize", function() {
myChart.resize();
});
},
}
}
更多推荐
已为社区贡献4条内容
所有评论(0)