在vue的项目开发中,数据的可视化可以用echarts来实现,具体用法如下:

(1)安装echarts,进入项目目录,执行如下命令,安装echarts:

npm install echarts 

(2)引入echarts,并对相关的横坐标和纵坐标进行赋值,该实例直接写入了app.vue中,具体代码如下:

<template>
<div>
<h2><button id="btn" @click="subBtn" v-text="btnText"></button></h2>
<ECharts class="chart-instance" :options="options" autoResize></ECharts>
</div>
</template>
<script>
import ECharts from 'vue-echarts/components/ECharts.vue'
import 'echarts/lib/chart/line'
import 'echarts/lib/component/dataZoom'
import 'echarts/lib/component/toolbox'
import 'echarts/lib/component/tooltip'
import 'echarts/lib/component/legend'
import 'echarts/lib/component/title' export default {
name: 'Readme',
components: {
ECharts
},
data () {
return {
// 切换标识
btnText: '隐藏',
options: {
title: {
show: false,
text: ''
},
tooltip: {
trigger: 'axis'
},
legend: {
selected: {},
data: []
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
toolbox: {
show: true,
feature: {
dataZoom: { show: true,
title: {
dataZoom: '区域缩放',
dataZoomReset: '区域缩放后退'
}
},
mark: { show: true },
dataView: { show: true, readOnly: false },
magicType: { show: true, type: ['line'] },
restore: { show: true },
saveAsImage: { show: true }
}
},
xAxis: [
{
axisLabel: {
interval: 11
},
data: []
}
],
yAxis: [
{
type: 'value'
}
],
series: []
}
}
},
methods: {
init: function () {
let _t = this
_t.drawLine()
},
drawLine () {
let _t = this
const item = {
0: {
'上周全部点击率': 'all',
'上周默认流点击率': 'default',
'上周推荐流点击率': 'recommend'
},
1: {
'今日全部点击率': 'all',
'今日默认流点击率': 'default',
'今日推荐流点击率': 'recommend'
}
}
let url = 'http://10.23.87.10/realtimedata?_appid=recommend&data_type=week_click_rate_flow'
this.$http.jsonp(url, { //看后台获取的是什么数据类型决定是用get还是用jsonp
jsonp: '_callback'
}).then(function (response) {
let res = response.body
Object.keys(item).forEach((obj) => { // 图列
_t.options.legend.data.push.apply(_t.options.legend.data, Object.keys(item[obj]))
})
_t.options.legend.data.forEach((item) => {
_t.options.series.push({
name: item,
type: 'line',
data: []
})
})
res.result.forEach((obj, index) => { // 昨日今日展示数
obj.data.forEach((objData, objDataIndex) => {
if (!index) { // 昨天
_t.options.xAxis[0].data.push(objData.time) // 获取(横轴)xAxis.data数据
}
Object.keys(item[index]).forEach((key) => {
const selectedIndex = _t.options.legend.data.indexOf(key)
_t.options.series[selectedIndex].data.push(objData[item[index][key]])
})
})
})
}, function (res) {
alert('图表请求数据失败!')
})
},
subBtn: function () {
let _t = this
let selectd = {}
if (_t.btnText === '隐藏') { // 判断是否显示或隐藏
for (let i = 0; i < _t.options.legend.data.length; i++) {
let key = _t.options.legend.data[i]
selectd[key] = false
}
_t.btnText = '显示'
} else {
for (let i = 0; i < _t.options.legend.data.length; i++) {
let key = _t.options.legend.data[i]
selectd[key] = true
}
_t.btnText = '隐藏'
}
_t.options.legend.selected = selectd
}
},
created: function () {
let _t = this
_t.init()
}
}
</script>
<style scoped>
h2{
text-align: center;
color:#333;
padding:0;
margin:30px 0 0 0;
}
#btn{
display: inline-block;
margin-left: 10px;
color: #fff;
font-size: 15px;
background: rgba(169,51,76,.9);
border: none;
width: 65px;
height: 25px;
outline: none;
border-radius: 5px;
}
.chart-instance {
width: 100%;
height:700px;
padding-top: 10px;
text-align: left; }
</style>

echarts的使用——vue的更多相关文章

  1. echarts+百度地图+vue 填坑记(一)(百度地图、鼠标移入移出标注,信息框会产生闪烁)

    大概七月底开始实习,到现在经历了两个完整的项目(c2b). 因为开发时间紧,任务重,所以在开发过程踩到的坑都没时间去记录. 现在在开发一个某链运输监控系统,到了收尾阶段,有时间写博客了!开心! 一.鼠 ...

  2. vue+echarts 动态绘制图表以及异步加载数据

    前言 背景:vue写的后台管理,需要将表格数据绘制成图表(折线图,柱状图),图表数据都是通过接口请求回来的. 安装 cnpm install echarts --s (我这里用了淘宝镜像,不知道同学自 ...

  3. vue中如何使用echarts

    在vue中使用echarts主要是注意如何与vue生命周期相结合,从而做到数据驱动视图刷新 主要是以下几步: echarts的option配置项放在在data(){}或者computed(){}中 在 ...

  4. Vue如何使用动态刷新Echarts组件

    这次给大家带来Vue如何使用动态刷新Echarts组件,Vue使用动态刷新Echarts组件的注意事项有哪些,下面就是实战案例,一起来看一下. 需求背景:dashboard作为目前企业中后台产品的“门 ...

  5. 在vue项目中封装echarts的正确姿势

    为什么需要封装echarts 每个开发者在制作图表时都需要从头到尾书写一遍完整的option配置,十分冗余 在同一个项目中,各类图表设计十分相似,甚至是相同,没必要一直做重复工作 可能有一些开发者忘记 ...

  6. vue 中使用echarts

    前言:在vue2.0中使用百度echarts有三种解决方案. 一.原始方法直接使用 这样每次都要获取图表dom元素 然后通过setOption渲染数据,最后在mounted中初始化.很麻烦. < ...

  7. vue教程6-图表

    引入 cnpm install echarts --save #在vue项目目录下安装echarts 静态折线图 linechart.js import echarts from 'echarts' ...

  8. echart 参数 vue配置 图文展示

    https://blog.csdn.net/she_lover/article/details/51448967 https://blog.csdn.net/n_meng/article/detail ...

  9. 项目总结之echarts 使用

    项目上需要使用echarts,对于一个新手前端来说,差点要爆炸了,自身前端基础就不好,echarts就更是不熟了,硬生生的逼着要一周做完一个系统.这算是个小总结吧,以后万一用的上捏. 渐变使用 项目中 ...

随机推荐

  1. MySQL查询语句详解,排序、分组、聚合函数、约束

    create database day20; 查询的时候from前面的字段是需要显示出来的内容,后面是条件use day20;create table phones(id int,pinpai var ...

  2. 5.1_springboot2.x与安全(spring security)

    1.简介 常见的两个安全框架shiro|spring security,这里只介绍spring security; Spring Security是针对Spring项目的安全框架,也是Spring B ...

  3. USACO2012 Haybale stacking /// 区间表示法 oj21556

    题目大意:N个方块 标号1~N  K个操作 操作a b 表示标号a~b区间每位多加一个方块 Input * Line 1: Two space-separated integers, N  K. * ...

  4. java笔试之从单向链表中删除指定值的节点

    输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针. 链表的值不能重复 构造过程,例如 1 -> 2 3 -> 2 5 -> 1 4  ...

  5. window下apache2.2配置多个tomcat使用不同二级域名,共用80端口

    思路:分3步, 1,安装apache服务器httpd-2.2.25-win32-x86-no_ssl.msi,安装tomcat 2,配置tomcat默认访问的项目,配置apache服务器 3,测试 第 ...

  6. JS按比例缩放图片

    1.JS代码 <script type="text/javascript" language="javascript"> var flag = fa ...

  7. JAVA算法之递归

    Ⅰ.三角数字 首先我们来看一组数字:1,3,6,10,15,21.....,在这个数列中第n项是由n-1项加n得到的,这个序列中的数字称为三角数字因为他们可以形象化地表示成一个三角形排列.如下图 通过 ...

  8. phonegap 开发指南系列----简介(2)

    一.简介      Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头.麦克风等.      Cordova还提供了一组统一的Ja ...

  9. (转)[视频压制/转换技术] I帧 B帧 P帧 IDR帧 等帧用途详细说明

    转:http://www.u2game.net/bbs/thread-46116-1-1.html 在视频压制.转换中,经常会看到:I帧 B帧 P帧 IDR帧 等名词,这里就是通用的解释一下这些帧的用 ...

  10. http://www.narkii.com/club/forum-46-1.html 纳金学习论坛,主要是讨论一些unty3D方面的事情,技术栈比较前沿,

    http://www.narkii.com/club/forum-46-1.html  纳金学习论坛,主要是讨论一些unty3D方面的事情,技术栈比较前沿,