vue echarts 雷达图(radar)动态获取数据并渲染
一、给个容器
二、获取数据
mounted(){ this._getCategory() },
_getCategory(){
getCategory().then(res=>{
let data = res.data.data
this.bookCategory(this.formatData(data))
})
},
formatData(data){
let indicator = []
let bookCat = []
let borrowCat = []
data.book.forEach(info => {
let key = info.category;
let value = info.number;
bookCat[key] = value
})
let bookValues = Object.values(bookCat) //book中的number组成的数组
let bookMax = Math.max(...bookValues)
let bookKeys = Object.keys(bookCat) //book数组中的category组成的数组
bookKeys.forEach(key => {
data.borrow.forEach(item=>{
if(item.category == key){
borrowCat[key] = item.number
}
})
})
let borrowValues = Object.values(borrowCat)
let borrowMax = Math.max(...borrowValues)
let max = bookMax > borrowMax ? bookMax : borrowMax
bookKeys.forEach(item => indicator.push({
'name':item,
'max':max
}))
let result = {
indicator : indicator,
bookCat : bookValues,
borrowCat : borrowValues
}
return result
},
bookCategory(data){
let bookCategoryChart = echarts.init(document.getElementById('book-category'))
let option = {
tooltip: {
trigger: 'item',
position:function(p){ //其中p为当前鼠标的位置
return [p[0], p[1]];
},
},
legend: {
orient: 'vertical',
right: '5%',
textStyle: {
color:'#DFE0E5',
fontWeight: 'bold'
},
data: ['书刊类别分布', '借阅类别分布']
},
radar: {
splitNumber: 2, // 雷达图圈数设置
center: ['50%','50%'],
radius : '65%',
name: {
textStyle: {
color: '#DFE0E5',
backgroundColor: '#121E36'
}
},
indicator: data.indicator,
splitArea : {
show : false,
areaStyle : {
color: 'rgba(255,0,0,0)', // 图表背景的颜色
},
},
},
series: [{
name: '书刊类别 vs 借阅类别',
type: 'radar',
data : [
{
value : data.bookCat,
name : '书刊类别分布',
itemStyle: {
normal: {
color:'#F75325' //显示颜色与填充颜色对应
}
},
areaStyle: {
normal: {
color: '#F75325' //填充的颜色
}
}
},
{
value : data.borrowCat,
name : '借阅类别分布',
itemStyle: {
normal: {
color:'#7B52CC'
}
},
areaStyle: {
normal: {
color: '#7B52CC'
}
}
}
]
}]
};
bookCategoryChart.setOption(option)
}
五、效果如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!