文件结构:
testData.js文件
const dtuEdition = { name: '有方有线', number: 60, proportion: 40, edition: { '有方有线V1.0.0': 20, '有方有线V1.2.0': 15, '有方有线V2.0.1': 10, '有方有线V3.0.0': 8, '有方有线V3.2.0': 5, '有方有线V3.4.0': 4, '有方有线V4.0.0': 3, '有方有线V4.0.2': 2, '有方有线V4.0.3': 1 } } export default { namespaced: true, // 用于在全局引用此文件里的方法时标识这一个的文件名 dtuEdition }
dtuDistributionCurve.js文件
// DTU连接率bar图的option let barOption = { grid: { // width: '85%', // 设置gird宽度 left: 40, // gird距离容器左边距 right: 65, top: 20, bottom: 0, containLabel: true }, xAxis: { show : false, // 不显示横轴 type: 'value', max: 1000, // 横轴最大值 }, yAxis: { type: 'category', data: [], axisLine: { show: false }, axisTick: { show: false }, splitLine: { show: false } }, series: [{ type: 'bar', stack: 'chart', z: 3, itemStyle: { normal: { color: '#a7c7e9' } }, data: [] }, { type: 'bar', stack: 'chart', silent: true, label: { normal: { formatter: (params) => { // console.log(params) return barOption.xAxis.max-params.value }, color: '#666666', position: 'right', distance: 10, show: true } }, itemStyle: { normal: { color: '#f3f3f6' } }, barWidth : 10,//柱图宽度 data: [] }] } // 设置y轴标签 export function setYAxisData(edition) { let data = [] for (let key in edition) { data.push(key) } barOption.yAxis.data = data.reverse() console.log(barOption.yAxis.data) } // 设置x轴最大值 export function setXAxisMax(number) { barOption.xAxis.max = number } // 设置series的data数据 export function setSeriesData(edition, number) { let data0 = [] let data1 = [] for(let key in edition) { data0.push(edition[key]) data1.push(number - edition[key]) } barOption.series[0].data = data0.reverse() barOption.series[1].data = data1.reverse() } export default { barOption, setYAxisData, setXAxisMax, setSeriesData }
vue文件
<template> <div ref="dtuEdition" class="project-survey-dtu-edition"></div> </template> <script> import testData from '../constvalue/testData' import dtuDistributionOption from '../curveoption/dtuDistributionCurve' export default { name: 'ProjectSurvey', data() { return { dtuEditionChart: null } }, methods: { // 点击DTU模块数量分布展示图的扇区item distributionChartClick(param) { console.log(param) let dtuEdition = testData.dtuEdition this.dtuName = dtuEdition.name this.dtuNumber = dtuEdition.number this.dtuProportion = dtuEdition.proportion + '%' dtuDistributionOption.setYAxisData(dtuEdition.edition) dtuDistributionOption.setXAxisMax(dtuEdition.number) dtuDistributionOption.setSeriesData(dtuEdition.edition, dtuEdition.number) this.dtuEditionChart.setOption(dtuDistributionOption.barOption) this.dtuEditionChart.resize() }, // 点击tab的某页 tabClick(tab, event) { console.log(this.activeName) if(this.activeName === 'first') { // 从后端获取连接率统计数据 } else { // 从后端获取模块数量分布展示数据 let distributionInfo = testData.dtuDistribution.distributionInfo this.deadline = testData.dtuDistribution.deadline dtuDistributionOption.setSectorValue(distributionInfo) dtuDistributionOption.setSectorName(testData.dtuDistribution.allDistribution) this.distributionChart.setOption(dtuDistributionOption.pieOption) this.distributionChart.resize() this.distributionChart.on('click', this.distributionChartClick) } } }, mounted() { this.dtuEditionChart = this.$echarts.init(this.$refs.dtuEdition) this.distributionChart = this.$echarts.init(this.$refs.dtuDistribution) let maxV = this.getMaxV() let minV = this.getMinV() for(let item of this.connectionInfo) { this.charts[item.dtuName] = this.$echarts.init(document.getElementById(item.dtuName)) let normalizationRatio = this.normalization(item.connectionRatio, maxV, minV) dtuConnectionOption.setSectorColor(normalizationRatio) dtuConnectionOption.setTitleText(item.dtuName) dtuConnectionOption.setSectorValue(item.connectionRatio) dtuConnectionOption.setSectorName(item.connectionRatio) // console.log(dtuConnectionOption.option) this.charts[item.dtuName].setOption(dtuConnectionOption.option) this.charts[item.dtuName].resize() } window.onresize = () => { this.distributionChart.resize() this.dtuEditionChart.resize() } }, updated() { this.distributionChart.resize() for(let item of this.connectionInfo) { this.charts[item.dtuName].resize() } } } </script> <style> .project-survey-dtu-edition { height: 580px; } </style>
图表
补充知识:vue+echart实现 X轴 双柱状图 渐变色
一: 安装
1. 首先需要安装echarts依赖包
npm install echarts -S
2. 或者使用国内的淘宝镜像:
npm install -g cnpm --registry=https://registry.npm.taobao.org
二: 创建图表
全局引入
main.js
>```javascript // 引入echarts import echarts from 'echarts' Vue.prototype.$echarts = echarts
Hello.vue
<div id="myChart" :style="{width: '300px', height: '300px'}"></div>
export default { data(){ return {} }, mounted(){ this.myChart() //函数调用 }, methods:{ myChart(){ let myChart= this.$echarts.init(document.getElementById('myChart')); // var colors = ['rgba(15,115,255,0.6)', 'rgba(15,235,255,0.6)']; var data1 = [350, 250, 170, 360, 240]; var data2 = [187, 146, 129, 174,245]; var xData = ['3.12','3.13','3.14','3.15','3.16'] rightBtns.setOption({ // backgroundColor:'#fff', tooltip: { trigger: "axis", // formatter: '{b}<br/>{a1}-违规率:{c1}<br/>{a0}-违规率:{c0}', axisPointer: { type: "shadow", textStyle: { color: "#fff" } }, }, grid: { top: '8%', right: '8%', bottom: '60%' }, legend: { data: ['省内', '省外'], align: 'left', left: '30%', top: '4%', textStyle:{ color:'#fff' } }, calculable: true, xAxis: [{ type: "category", data: xData, axisLine: { lineStyle: { color: 'rgba(255,255,255,0.1)' }, }, axisLabel: { show: true, textStyle: { color: '#fff' } }, }], yAxis: { type: 'value', // name:'单位:(人次 )', min: 0, max: 500, interval: 100, axisLine: { lineStyle: { color: 'rgba(255,255,255,0.1)' } }, splitLine: { lineStyle: { type: 'dashed', }, show:false }, axisLabel: { show: true, textStyle: { color: '#fff' } }, }, series: [{ name: '省内', type: 'bar', // color: colors[0], data: data1, itemStyle:{ normal: { //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组 //此处的箭头函数是为了不改变this的指向 color: (params) => { var index = params.dataIndex; var colorList = [ // 渐变颜色的色值和透明度 //双柱状图渐变的 第一个柱子的渐变色['rgba(15,235,255,0)','rgba(15,235,255,0)','rgba(15,235,255,0)','rgba(15,235,255,0)','rgba(15,235,255,0)'], ['rgba(15,235,255,0.6)','rgba(15,235,255,0.6)','rgba(15,235,255,0.6)','rgba(15,235,255,0.6)','rgba(15,235,255,0.6)'] ]; if(params.dataIndex >= colorList.length){ index=params.dataIndex-colorList.length; } //方法一: //不使用箭头函数的写法改变渐变色 // return { // colorStops: [{ // offset: 0, //颜色开始的位置 // color: colorList[0][index] // 0% 处的颜色 // },{ // offset: 0.6, //颜色结束的位置 // color: colorList[1][index] // 100% 处的颜色 // }] // } //方法二:使用箭头函数的写法 改变双柱状图的渐变颜色 return new this.$echarts.graphic.LinearGradient(0,0,0,1,[ {offset: 0.2, color: colorList[1][index]}, {offset: 1, color: colorList[0][index]} ]) } } } }, { name: '省外', type: 'bar', // color: colors[1], data: data2, itemStyle:{ normal: { //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组 color: (params) => { var index = params.dataIndex; var colorList = [ // 渐变颜色的色值和透明度 //双柱状图渐变的 渐变第二个柱子的渐变色['rgba(15,115,255,0)','rgba(15,115,255,0)','rgba(15,115,255,0)','rgba(15,115,255,0)','rgba(15,115,255,0)'], ['rgba(15,115,255,0.6)','rgba(15,115,255,0.6)','rgba(15,115,255,0.6)','rgba(15,115,255,0.6)','rgba(15,115,255,0.6)'] ]; //方法一: //不使用箭头函数的写法改变渐变色 // return { // colorStops: [{ // offset: 0, // color: colorList[0][index] // 0% 处的颜色 // },{ // offset:0.6, // color: colorList[1][index] // 100% 处的颜色 // }] // } //方法二:使用箭头函数的写法 改变双柱状图的渐变颜色 return new this.$echarts.graphic.LinearGradient(0,0,0,1,[ {offset: 0.2, color: colorList[1][index]}, {offset: 1, color: colorList[0][index]} ]) } } } }] }) } } }
最终结果
以上这篇vue使用echarts实现水平柱形图实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]