在vue中添加Echarts图表的基本使⽤教程
前⾔
我们在项⽬中经常需要使⽤⼀些折线图、柱状图、饼状图等等,之前使⽤过heightCharts,后来觉得这货不开源,只是做展⽰的话⼜点浪费时间,于是看了下eCharts,于是在vue-cli搭建的项⽬中添加了eCharts,下⾯是具体步骤和⾃⼰的⼀些学习笔记,参照于Echarts3官⽹
现在的前端⼀般需要完成将⼤量的数据,实现可视化。现在是⼤数据和云计算的时代,所以数据可视化逐渐变成⼀种趋势。⽽ECharts和d3.js则是可视化的成熟框架。对于制作的图表可以说是满⾜你的创造⼒。
两者相⽐,D3 它被很多其他的表格插件所使⽤。它允许绑定任意数据到DOM,然后将数据驱动转换应⽤到Document中。你可以使⽤它⽤⼀个数组创建基本的HTML表格,或是利⽤它的流体过度和交互,⽤相似的数据创建惊⼈的SVG条形图。
⽽ECharts图表更加的适合应⽤,具备华丽的外⾐,但很实⽤。
ECharts的基本模板⾮常简单,相对d3上⼿容易。
Echarts图表的基本使⽤
1.在vue-cli项⽬中添加webpack配置,本⽂引⼊的最新版本。在 3.1.1 版本之前 ECharts 在 npm 上的 package 是⾮官⽅维护的,从 3.1.1 开始由官⽅维护 npm 上 ECharts 和 zrender 的 package。
使⽤npm添加package.json⽂件中的配置并下载相关npm包依赖
npm install echarts --save
然后在项⽬⽂件的⼊⼝js⽂件main.js中添加
import echarts from "echarts"
在需要添加图标的组件中创建依赖的实例
var echarts = require('echarts');
使⽤这种⽅式得到的是已经加载了所有图表和组件的 ECharts 包,因此体积会⽐较⼤。也可以只按需引⼊需要的模块。例如
// 引⼊ ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引⼊柱状图
require('echarts/lib/chart/bar');
// 引⼊提⽰框和标题组件
require('echarts/lib/component/tooltip');
require('echarts/lib/component/title');
在模板中创建所需的dom
<!-- ECharts图表测试 -->
<div id="charts" >
<div id="main" :></div>
</div>
写⼊js:
export default {
name: 'Bank',
data () {
return {
}
},setoption
components: {
},
computed: {
},
methods: {
},
mounted() {
/*ECharts图表*/
var myChart = echarts.ElementById('main'));
myChart.setOption({
series : [
{
name: '访问来源',
type: 'pie',
radius: '55%',
itemStyle: {
normal: {
// 阴影的⼤⼩
shadowBlur: 200,
// 阴影⽔平⽅向上的偏移
shadowOffsetX: 0,
// 阴影垂直⽅向上的偏移
shadowOffsetY: 0,
// 阴影颜⾊
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
},
data:[
{value:400, name:'搜索引擎'},
{value:335, name:'直接访问'},
{value:310, name:'邮件营销'},
{value:274, name:'联盟⼴告'},
{value:235, name:'视频⼴告'}
]
}
]
})
}
}
eCharts中的事件:
ECharts ⽀持常规的⿏标事件类型,包括 'click'、'dblclick'、'mousedown'、'mousemove'、'mouseup'、'mouseover'、'mouseout' 事件。
// 基于准备好的dom,初始化ECharts实例
var myChart = echarts.ElementById('main'));
// 指定图表的配置项和数据
var option = {
xAxis: {
data: ["衬衫","⽺⽑衫","雪纺衫","裤⼦","⾼跟鞋","袜⼦"]
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
}]
};
// 使⽤刚指定的配置项和数据显⽰图表。
myChart.setOption(option);
// 处理点击事件并且跳转到相应的百度搜索页⾯
<('click', function (params) {
window.open('www.baidu/s?wd=' + encodeURIComponent(params.name));
});
所有的⿏标事件包含参数 params,这是⼀个包含点击图形的数据信息的对象,如下格式:
{
// 当前点击的图形元素所属的组件名称,
// 其值如 'series'、'markLine'、'markPoint'、'timeLine' 等。
componentType: string,
// 系列类型。值可能为:'line'、'bar'、'pie' 等。当 componentType 为 'series' 时有意义。
seriesType: string,
// 系列在传⼊的 option.series 中的 index。当 componentType 为 'series' 时有意义。
seriesIndex: number,
// 系列名称。当 componentType 为 'series' 时有意义。
seriesName: string,
// 数据名,类⽬名
name: string,
// 数据在传⼊的 data 数组中的 index
dataIndex: number,
// 传⼊的原始数据项
data: Object,
// sankey、graph 等图表同时含有 nodeData 和 edgeData 两种 data,
// dataType 的值会是 'node' 或者 'edge',表⽰当前点击在 node 还是 edge 上。
// 其他⼤部分图表中只有⼀种 data,dataType ⽆意义。
dataType: string,
/
/ 传⼊的数据值
value: number|Array
// 数据图形的颜⾊。当 componentType 为 'series' 时有意义。
color: string
}
如何区分⿏标点击到了哪⾥:
<('click', function (params) {
if (paramsponentType === 'markPoint') {
// 点击到了 markPoint 上
if (params.seriesIndex === 5) {
// 点击到了 index 为 5 的 series 的 markPoint 上。
}
}
else if (paramsponentType === 'series') {
if (params.seriesType === 'graph') {
if (params.dataType === 'edge') {
// 点击到了 graph 的 edge(边)上。
}
else {
// 点击到了 graph 的 node(节点)上。
}
}
}
});
你可以在回调函数中获得这个对象中的数据名、系列名称后在⾃⼰的数据仓库中索引得到其它的信息候更新图表,显⽰浮层等等,如下⽰例代码:
<('click', function (parmas) {
$.get('detail?q=' + params.name, function (detail) {
myChart.setOption({
series: [{
name: 'pie',
// 通过饼图表现单个柱⼦中的数据分布
data: [detail.data]
}]
});
});
});
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,如果有疑问⼤家可以留⾔交流,谢谢⼤家对的⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。