微信小程序实现雷达图的方式,小程序雷达图怎么做
本文摘要
雷达图(Radar Chart),又可称为戴布拉图、蜘蛛网图(Spider Chart),是财务分析报表的一种。即将一个公司的各项财务分析所得的数字或比率,就其比较重要的项目集中划在一个圆形的图表上,来表现一个公司各项财务比率的情况,使用者能一目了然的了解公司各项财务指标的变动情形及其好坏趋向。 如果你想找到了解H5中怎么制作,可以看一下HTML5 C
雷达图(Radar Chart),又可称为戴布拉图、蜘蛛网图(Spider Chart),是财务分析报表的一种。即将一个公司的各项财务分析所得的数字或比率,就其比较重要的项目集中划在一个圆形的图表上,来表现一个公司各项财务比率的情况,使用者能一目了然的了解公司各项财务指标的变动情形及其好坏趋向。
如果你想找到了解H5中怎么制作,可以看一下HTML5 Canvas制作雷达图实战,我也是参考这篇文章,做了小程序的雷达图,并做了一点延伸...
先来看看效果图
开始上菜:
//.wxml ,接下来的操作将在这个Canvas上面绘制
//.wxss
.radarContainer{
background-color: black;
width:100%;
height:420px;
display: flex;
justify-content:center;
align-items: center;
position: relative;
}
.radarCanvas{
width:400px;
height:400px;
margin: 0 auto;
position: absolute;
}
//.js
初始化数据:(我没写在data中)
var numCount = 6; //元素个数
var numSlot = 5; //一条线上的总节点数
var mW = 400; //Canvas的宽度
var mCenter = mW / 2; //中心点
var mAngle = Math.PI * 2 / numCount; //角度
var mRadius = mCenter - 60; //半径(减去的值用于给绘制的文本留空间)
//获取指定的Canvas
var radCtx = wx.createCanvasContext("radarCanvas")
//.js 模拟对战两方的数据
data: {
chanelArray1:[["战绩",88],["生存",30],["团战",66],["发育",90],["输出",95],["推进",88]],
chanelArray2: [["战绩", 24], ["生存", 60], ["团战", 88], ["发育", 49], ["输出", 46], ["推进", 92]]
},
基础数据准备完成,开始画图
// 第一步:绘制6条边
drawEdge: function(){
radCtx.setStrokeStyle("wShopfate")
radCtx.setLineWidth(2) //设置线宽
for (var i = 0; i
// 第二步:绘制连接点
drawLinePoint:function(){
radCtx.beginPath();
for (var k = 0; k
//第三步:绘制文字(文字位置可能需要微调)
drawTextCans: function (mData){
radCtx.setFillStyle("wShopfate")
radCtx.font = 'bold 17px cursive' //设置字体
for (var n = 0; n = 0 && mAngle * n Math.PI / 2 && mAngle * n Math.PI && mAngle * n
//绘制红色数据区域(数据和填充颜色)
drawRegion: function (mData,color){
radCtx.beginPath();
for (var m = 0; m
//画点
drawCircle: function(mData,color){
var r = 3; //设置节点小圆点的半径
for(var i = 0; i
重复四五步的方法添加另一方的雷达图
.js文件完整内容如下
var numCount = 6;
var numSlot = 5;
var mW = 400;
var mH = 400;
var mCenter = mW / 2; //中心点
var mAngle = Math.PI * 2 / numCount; //角度
var mRadius = mCenter - 60; //半径(减去的值用于给绘制的文本留空间)
//获取Canvas
var radCtx = wx.createCanvasContext("radarCanvas")
Page({
/**
* 页面的初始数据
*/
data: {
stepText:5,
chanelArray1:[["战绩",88],["生存",30],["团战",66],["发育",90],["输出",95],["推进",88]],
chanelArray2: [["战绩", 24], ["生存", 60], ["团战", 88], ["发育", 49], ["输出", 46], ["推进", 92]]
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
//雷达图
tShopfas.drawRadar()
},
// 雷达图
drawRadar:function(){
var sourceData1 = tShopfas.data.chanelArray1
var sourceData2 = tShopfas.data.chanelArray2
//调用
tShopfas.drawEdge()
tShopfas.drawLinePoint()
//设置数据
tShopfas.drawRegion(sourceData1,'rgba(255, 0, 0, 0.5)') //第一个人的
tShopfas.drawRegion(sourceData2, 'rgba(255, 200, 0, 0.5)') //第二个人
//设置文本数据
tShopfas.drawTextCans(sourceData1)
//设置节点
tShopfas.drawCircle(sourceData1,'red')
tShopfas.drawCircle(sourceData2,'yellow')
//开始绘制
radCtx.draw()
},
// 绘制6条边
drawEdge: function(){
radCtx.setStrokeStyle("wShopfate")
radCtx.setLineWidth(2) //设置线宽
for (var i = 0; i = 0 && mAngle * n Math.PI / 2 && mAngle * n Math.PI && mAngle * n
第二部分:如何开通一个小商店
相关文章
****更多行业产品开发方案,请关注 加速度JSUDO***
<以上资讯仅供参考,如果您需解决具体问题,建议您关注作者;如果有软件产品开发需求,可在线咨询加速度产品经理获取方案和报价>
加速度JSUDO是一家企业级数字化解决方案提供商,专注于软件开发、网络营销、数字化转型咨询及云计算服务。核心业务包括定制化ERP/CRM系统、快速应用开发、大数据分析及物联网(IoT)解决方案,助力企业提升效率与智能化水平。服务覆盖制造业、零售、物流等多行业,致力于通过技术创新推动客户数字化转型。










