在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. docker集群管理之swarm

    一.简介 docker集群管理工具有swarm.k8s.mesos等,我所用到的是swarm和k8s,这篇文章主要介绍swarm:swarm是docker集成的原生 管理工具,只要你安装上docker ...

  2. 2018Github用户kamranahmedse分享的开发路线

    下面四张图是Github用户kamranahmedse分享的,主要是web前端开发.后端开发以及DevOps开发的路线图,涉及的点还是很全面的,如果你对这部分有兴趣,并且希望有所作为,以下这几张路线图 ...

  3. [转载]HTTPS的工作原理

    HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息.TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经过艺术家精心设计的艺 ...

  4. elasticsearch.net一个查询问题

    .Query(q => q.Bool(b => b.Must(m => m.MultiMatch(t => t .Fields(f => f.Field(obj => ...

  5. split的用法

    split用法返回的是数组 使用split('')根据空格返回数组 使用split()返回一个完整的数组 使用split("",3)返回前三项,是单个的字母 不过要注意: 使用sp ...

  6. PHP算法之宝石与石头

    给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石. J 中的字母不重复,J 和 S中的所有字符都是字母 ...

  7. Android开发 View的UI刷新Invalidate和postInvalidate

    Invalidate 正常刷新 /** * 使整个视图无效.如果视图可见, * {@link #onDraw(android.graphics.Canvas)} 调用此方法后将在后续的UI刷新里调用o ...

  8. JAVA算法之简单排序

    冒泡排序: 在概念上是排序算法中最简单的,但是运行起来非常慢,冒泡排序遵循以下几个规则(假如我们现在要给一队打乱的足球队员排序): 比较两个队员 如果左边的队员比右边的高,则交换位置 向右移动一位,比 ...

  9. css---文本新增样式

    opacity属性指定了一个元素的透明度 默认值:1.0 不可继承    兼容性不是太好 兼容性写法 opacity{ opacity:0.5; filter:alpha(opacity=); //f ...

  10. log4j2 按日期分割,自动清理历史文件

    方式一:定义CronTriggeringPolicy <?xml version="1.0" encoding="UTF-8"?> <Conf ...