您好,登錄后才能下訂單哦!
這篇文章給大家介紹vue+antv實現雷達圖的示例代碼怎么編寫,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
npm install @antv/data-set
npm install @antv/g2
<template> <div ref="container" /> </template> <script> import DataSet from '@antv/data-set' import { Chart } from '@antv/g2' export default { // 創建雷達圖 mounted() { this.constradar() }, methods: { constradar() { const data = [ { item: '工作效率', a: 70, b: 30 }, { item: '考勤', a: 60, b: 70 }, { item: '積極性', a: 50, b: 60 }, { item: '幫助同事', a: 40, b: 50 }, { item: '自主學習', a: 60, b: 70 }, { item: '正確率', a: 70, b: 50 } ] const { DataView } = DataSet const dv = new DataView().source(data) dv.transform({ type: 'fold', fields: ['a', 'b'], // 展開字段集 key: 'user', // key字段 value: 'score' // value字段 }) const chart = new Chart({ container: this.$refs.container, autoFit: true, height: 500 }) chart.data(dv.rows) chart.scale('score', { min: 0, max: 80 }) chart.coordinate('polar', { radius: 0.8 }) chart.tooltip({ shared: true, showCrosshairs: true, crosshairs: { line: { style: { lineDash: [4, 4], stroke: '#333' } } } }) chart.axis('item', { line: null, tickLine: null, grid: { line: { style: { lineDash: null } } } }) chart.axis('score', { line: null, tickLine: null, grid: { line: { type: 'line', style: { lineDash: null } } } }) chart.line().position('item*score').color('user').size(2) chart .point() .position('item*score') .color('user') .shape('circle') .size(4) .style({ stroke: '#fff', lineWidth: 1, fillOpacity: 1 }) chart.area().position('item*score').color('user') chart.render() //修改數據 const newData = [ { item: '工作效率', a: 20, b: 30 }, { item: '考勤', a: 30, b: 70 }, { item: '積極性', a: 10, b: 60 }, { item: '幫助同事', a: 40, b: 50 }, { item: '自主學習', a: 60, b: 70 }, { item: '正確率', a: 20, b: 50 } ] // 立刻更新 setTimeout(() => { // 處理數據開始 const dv = new DataView().source(newData) dv.transform({ type: 'fold', fields: ['a', 'b'], // 展開字段集 key: 'user', // key字段 value: 'score' // value字段 }) // 處理結束 // 正式使用處理之后的數據進行圖標更新 chart.changeData(dv.rows) }, 3000) } } } </script> <style></style>
數據修改前
數據修改后
關于vue+antv實現雷達圖的示例代碼怎么編寫就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。