echarts的使用——vue
在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的更多相关文章
- echarts+百度地图+vue 填坑记(一)(百度地图、鼠标移入移出标注,信息框会产生闪烁)
大概七月底开始实习,到现在经历了两个完整的项目(c2b). 因为开发时间紧,任务重,所以在开发过程踩到的坑都没时间去记录. 现在在开发一个某链运输监控系统,到了收尾阶段,有时间写博客了!开心! 一.鼠 ...
- vue+echarts 动态绘制图表以及异步加载数据
前言 背景:vue写的后台管理,需要将表格数据绘制成图表(折线图,柱状图),图表数据都是通过接口请求回来的. 安装 cnpm install echarts --s (我这里用了淘宝镜像,不知道同学自 ...
- vue中如何使用echarts
在vue中使用echarts主要是注意如何与vue生命周期相结合,从而做到数据驱动视图刷新 主要是以下几步: echarts的option配置项放在在data(){}或者computed(){}中 在 ...
- Vue如何使用动态刷新Echarts组件
这次给大家带来Vue如何使用动态刷新Echarts组件,Vue使用动态刷新Echarts组件的注意事项有哪些,下面就是实战案例,一起来看一下. 需求背景:dashboard作为目前企业中后台产品的“门 ...
- 在vue项目中封装echarts的正确姿势
为什么需要封装echarts 每个开发者在制作图表时都需要从头到尾书写一遍完整的option配置,十分冗余 在同一个项目中,各类图表设计十分相似,甚至是相同,没必要一直做重复工作 可能有一些开发者忘记 ...
- vue 中使用echarts
前言:在vue2.0中使用百度echarts有三种解决方案. 一.原始方法直接使用 这样每次都要获取图表dom元素 然后通过setOption渲染数据,最后在mounted中初始化.很麻烦. < ...
- vue教程6-图表
引入 cnpm install echarts --save #在vue项目目录下安装echarts 静态折线图 linechart.js import echarts from 'echarts' ...
- echart 参数 vue配置 图文展示
https://blog.csdn.net/she_lover/article/details/51448967 https://blog.csdn.net/n_meng/article/detail ...
- 项目总结之echarts 使用
项目上需要使用echarts,对于一个新手前端来说,差点要爆炸了,自身前端基础就不好,echarts就更是不熟了,硬生生的逼着要一周做完一个系统.这算是个小总结吧,以后万一用的上捏. 渐变使用 项目中 ...
随机推荐
- json对象数组的创建、遍历、添加、删除、修改、js的splice()用法
本文链接:https://blog.csdn.net/houfengfei668/article/details/79843625 )第二种方式:手动构造json对象数组 )for )用splice方 ...
- Jmeter-----请求依赖之JsonExtractor
层级关系填写: 1.第一个必须是$ 2.用英文状态下的 . 来代表下一个层级
- php pdo 获取数据转换为json
php 查询语句获取数据,数据库有好多表现形式,如何拿出自己需要的数据 $raceSQL ='select id, race_name,race_code,content from je_race ' ...
- MySQL 08章_数据库设计
一. 关系模型与对象模型之间的对应关系 序号 关系模型:数据库 对象模型:java程序 1 数据表table 实体entity:特殊的java类 2 字段field 属性attribute/字段fie ...
- RAKsmart服务器受消费者青睐的原因
随着互联网的快速发展,网站建设变得越来越重要,现在很多做外贸网站的都会选择美国服务器来建设网站,近年来RAKsmart服务器受到广大站长的欢迎,那RAKsmart服务器受消费者青睐的关键是什么呢. 1 ...
- Delphi 第一课
Delphi 是面向对象的 可视化的集成开发环境 对象包括属性 方法 事件. 用户事件 对象响应事件 不同的对象响应事件不一样
- js获取当前网址Url
js获取当前路径并截取 var str = window.location.href;// str = 'https://localhost:8080/mark' var index = str .l ...
- mysql主从同步的键值冲突问题的解决方法
转自https://njs375666635.iteye.com/blog/2242067 多主互备和主从复制有一些区别,因为多主中都可以对服务器有写权限,所以设计到自增长重复问题 出现的问题(多主自 ...
- java变量和数据类型
变量 数据类型 变量名 = 数据值: 注意事项: 变量定义后可以不赋值,使用时再赋值.不赋值不能使用 变量使用时有作用域的限制. 变量不可以重复定义 数据类型转换 自动类型转换 范围大的数据类 ...
- 0704 Process继承实现多进程、Pool进程池,进程间通过队列通信,Pool实现多进程实现复制文件
通过继承的方式,实现Process多进程 from multiprocessing import Process import time class MyNewProcess(Process): de ...