我是靠谱客的博主 欣慰音响,最近开发中收集的这篇文章主要介绍vue饼图组件_VUE图表绘制,选用哪种可视化组件好?VUE饼图柱图使用范例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近一个项目中使用了VUE,并需要绘制图表,这就尴尬了,搜查了很多资料,发现网上使用的有:npm-c3,v-charts,sChart,D3等等多种多样,经过至少不下5中可视化组件尝试,发现最好用的还是Echarts。

主要原因:

1.有官方实例和API,资源丰富,遇到问题可快速解决

2.支持图标类型多样化,能满足项目扩展需求

3.图表操作灵活,配置项可封装,自由度高

废话少说,直接上代码吧,在这里就不说用npm引入echarts,自行百度吧,主要分享代码,这样方面大家参考,以柱图为例

VUE HTML部分:

style scoped>

#chart_example{

width: 100%;

height:100%;

}

js代码部分:

import echarts from 'echarts'

import echatrsMC from '../../mEchartsUtil2MC'//这个是我Echarts的封装

import util from '../../util'//这个是请求封装,可以不用管

export default {

data() {

return {}

},

mounted() {

let $this = this

// let myChart = echarts.init(document.getElementById('chart_example'))

let yData = ['我','叫','冒','菜','AND','我','L','O','V','E','I','T']

let xData = [1314, 521, 215, 125, 111, 55,16,10,5,3,2,1]

let idList = []

let mURL = '填写你要发送的请求'

util.ajax2MC('get',mURL, null, function (result) {//数据处理仅仅供参考

if(result.data){

yData = []

xData = []

for (let i = 0; i < result.data.length; i++) {

yData.push(result.data[i].psnNm)

xData.push(result.data[i].cost)

idList.push(result.data[i].psnId)

}

let option = echatrsMC.getOneBarOption(yData,xData)//封装代码中获取option实例

//特别注意下面三行代码要写到请求中,不然会出现echarts实例化dom元素了,但是数据没有绑定上,因为请求的数据还没返回echarts就已经实例了,这样写能解决该问题

var myChart = echarts.init(document.getElementById('chart_example'))

myChart.clear()

myChart.setOption(option,true)

myChart.on('click', function (params) {//绑定点击事件

let idx = params.dataIndex

let id = idList[idx]

console.log(id)

$this.$f7.views.main.router.reloadPage('/logsts/logStsPsnWork/'+id)//界面跳转,不用管

})

}

})

},

methods: {},

watch: {},

created() {

}

}

分享下封装的代码自行参考,util.js:

mport _ from 'lodash'

import axios from 'axios'

import * as copy from 'copy-to-clipboard'

import store from './store'

import routes from './routes.js'

import base64url from 'base64-url'

import cookie from 'js-cookie'

import qs from 'qs'

export default {

/**

* 异步请求调用

* @param type 请求类型 post/get

* @param method 方法名

* @param payload 请求内容

* @param callback 回调函数

*/

ajax2MC(type, method, payload, callback) {

let httpUrl, httpMethod

if(type === 'get'){

httpMethod = 'get'

} else {

httpMethod = 'post'

}

httpUrl = env.apiBaseUrl + '/' + method

this.log('调用参数' + payload)

this.log('请求URL:' + httpUrl)

window.f7.showIndicator()

let that = this

axios({

method: httpMethod,

url: httpUrl,

timeout: 1000 * 12, // 创建axios实例,设定超时时间是12s

data: qs.stringify(payload),

withCredentials:true,

headers: {

'Content-Type': 'application/x-www-form-urlencoded',

},

})

.then(function (response) {

window.f7.hideIndicator()

let returnFlag = response.data.code

let returnInfo = response.data.message

if (returnFlag === 0) {

callback(response.data)

} else if (returnFlag === 10) {

window.f7.confirm('

用户登录已失效

点击确定重新登录

', function () {

window.f7.loginScreen()

})

} else {

window.f7.alert('

错误代码: ' + returnFlag + '

原因: ' + returnInfo + '

')

}

})

.catch(function (error) {

window.f7.hideIndicator()

that.log(error)

window.f7.alert('服务调用失败,请检查网络连接')

})

}

}

封装的echarts.js部分mEchartsUtil2MC.js:

export default {

getOneBarOption(yData,xData){

let barColorList = ['#3c9bd3','#3dc0e4','#66dede','#9aeb2','#fdd65d','#fb9479','#f6658b','#d956a5','#e085ca','#e3b4f0']//柱图色值

let barGridInfo = { //绘图区调整

x:80, //左留白

y:10, //上留白

x2:80, //右留白

y2:10 //下留白

}

//横向单柱图option

return{

tooltip : {

trigger: 'item' //悬浮提示框不显示

},

grid:barGridInfo,

xAxis : [

{

show:false,

type : 'value',

boundaryGap : [0, 0],

position: 'top'

}

],

yAxis : [

{

type : 'category',

data :yData,

axisLine:{

show:false,

textStyle: {

code:function(params) {

return barColorList[params.dataIndex]

}

}

}, //坐标轴

axisTick:[{ //坐标轴小标记

show:false

}],

axisLabel:{

textStyle:{

fontSize:'15',

color: '#3dc0e4'

}

}

}

],

series : [

{

name:'',

type:'bar',

tooltip:{show:false},

barMinHeight:10, //最小柱高

barWidth: 20, //柱宽度

barMaxWidth:100, //最大柱宽度

data:xData,

itemStyle:{

normal:{ //柱状图颜色

color:function(params) {

return barColorList[params.dataIndex]

},

label:{

show: true, //显示文本

position: 'right', //数据值位置

textStyle:{

color:function(params) {

return barColorList[params.dataIndex]

},

fontSize:'15'

}

}

}

}

}

]

}

},

getPieOption(btData){

return{

color:['#3c9bd3','#e085ca','#e3b4f0','#3dc0e4','#66dede','#9aeb2','#fdd65d','#fb9479','#f6658b','#d956a5'],

series : [

{

name: '',

type: 'pie',

radius : '75%',

center: ['50%', '50%'],

data:btData,

itemStyle: {

emphasis: {

shadowBlur: 10,

shadowOffsetX: 0,

shadowColor: 'rgba(0, 0, 0, 0.5)'

}

}

}

]

}

}

}

最后

以上就是欣慰音响为你收集整理的vue饼图组件_VUE图表绘制,选用哪种可视化组件好?VUE饼图柱图使用范例的全部内容,希望文章能够帮你解决vue饼图组件_VUE图表绘制,选用哪种可视化组件好?VUE饼图柱图使用范例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部