小程序----使用图表显示数据--canvas

需求:在小程序上实现数据可视化

思路:本来想用的是echarts或者相关的可视化插件,但因为用的是vue3,大多数插件不支持,所以用了echarts,但最后打包的时候说包太大超过2M无法上传,百度了一下,说包太大可以进行分包,但是分包的时候还有很多条件,例如tabbar必须在主包,而且最重要的是主包还不能使用分包的资源,那这样的话,如果把echarts这个页面封装的页面放到分包里面,那我主包就没法引用这个图表页面显示了,所以分包是不现实的(然而这一点是在我分完包之后才知道的,所以这告诉我们,无论使用什么新东西都要认真阅读文档,读明白所有使用条件,再决定是否可以使用),分包实现不了,最后只能放弃echarts,转向用canvas绘图,其实最开始也是考虑过使用canvas的,但是因为canvas刚自己看了文档不久,不太熟练,而且也没太想好,所以才用echarts的,但最后还是回到了canvas上。

效果图:

实现过程:其实就是利用canvas 2d来画圆,具体属性大家可以到这个网站查看HTML5 Canvas | 菜鸟教程,

但是有一点要注意的是,canvas原生属性画图优先级是最高的,且不受z-index等优先级属性控制,所以可能会有一些优先级问题,所以最后我把canvas绘出来的图形转成了图片显示在页面上,这样就没有了优先级的问题。

实现代码:

 <canvas v-if="!imgsrc" id="canvas" canvas-id="canvas" style="width: 384px; height: 150px;" ></canvas><image v-if="imgsrc" :src="imgsrc" ></image>
	let that =thisvar ctx = uni.createCanvasContext('canvas', this);let end = (this.data.done / this.data.total ) * 2 * Math.PI; //设置弧度ctx.setLineWidth(12); // 设置圆环的宽度ctx.arc(100, 80, 60, 0, 2 * Math.PI)ctx.setStrokeStyle('#ececec');ctx.stroke(); //对当前路径进行描边// ctx.setLineCap('square'); // 设置圆环端点的形状  无圆角ctx.beginPath(); //开始一个新的路径ctx.setStrokeStyle('#6db500'); // 设置圆环的颜色ctx.setLineCap('round'); // 设置圆环端点的形状  圆角ctx.arc(100, 80, 60, 0, end, false);ctx.stroke(); //对当前路径进行描边//设置一个原点(110,110),半径为100的圆的路径到当前路径ctx.stroke(); //对当前路径进行描边ctx.draw(false,()=>{// 生成图片wx.canvasToTempFilePath({height: 150,canvasId: 'canvas',success: (res) => {that.imgsrc = res.tempFilePath},fail: (res) => {console.log(res);}},that);});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/225138.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线性分类器--数据处理

数据集划分 通常按照 70%&#xff0c;20% &#xff0c;10% 来分数据集 数据处理 斯坦福的线性分类器体验 http://vision.stanford.edu/teaching/cs231n-demos/linear-classify/

为什么API管理工具对开发人员有益?

应用程序编程接口 &#xff08;API&#xff09; 用于在应用程序之间创建连接&#xff0c;以允许它们相互通信。这种连接是当今数字世界运作方式不可或缺的一部分。实际上&#xff0c;API 使企业能够集成系统&#xff0c;通过创新提供更好的服务和产品。 这就是为什么在 IT 内部…

Nacos源码本地搭建流程及目录结构解读

下载地址 https://github.com/alibaba/nacos 目录结构 本地单机启动 首先maven编译完成之后在console下面找到Nacos 这个就是主启动类 然后再vm中配置参数-Dnacos.standalonetrue表示单机启动 当控制台没有报错 访问 http://localhost:8848/nacos 控制台界面登录进来之后显…

如何运用AppLink平台中的数据连接器组件

AppLink平台组件组成 AppLink平台组件分成三个板块触发事件组件、基础组件和数据连接器 数据连接器组件里面有10个组件&#xff0c;目前也在不断新增更多的数据连接器&#xff0c;那他们在AppLink平台里的原理、触发动作以及怎么使用呢&#xff1f;接下来用MySQL和TimescaleD…

OpenGL之Mesa3D编译for Ubuntu20.04(三十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

攻关眼科难题!第一届爱尔眼科-四川大学科研基金完成立项

当前我国眼科患者数量不断增长&#xff0c;人民群众对高质量的眼健康的需要不断攀升&#xff0c;而目前国内眼科医疗资源远不能满足需求&#xff0c;疑难眼病诊疗能力及学术科研体系建设仍有较大进步空间。基于此&#xff0c;爱尔眼科携手四川大学共同设立爱尔眼科-四川大学科研…

Win7 SP1 x64 安装 Python 出错解决方法

1 双击安装 python-3.7.9.exe &#xff0c;提示出错&#xff0c;log.file 显示需要 KB2533623&#xff0c;但在Microsoft Update Catalog 没有搜到&#xff0c;实验 KB4474419 也可以。 2 Microsoft Update Catalog 搜索 KB4474419 &#xff0c;选择 x64 位&#xff0c;下载&am…

[极客大挑战2023] Crypto/PWN/Reverse

这个网站真辛苦&#xff0c;每次都要回到all&#xff0c;屏幕随时卡。界面有待进步老远。也不提示结束&#xff0c;结果现在才听说结束了&#xff0c;才开始记录一下。 还跟往常一样&#xff0c;WM不作&#xff0c;其它也AK不了&#xff0c;总是差点。 Crypto SignIn 53594…

虹科Pico汽车示波器 | 汽车免拆检修 | 2016款东风悦达起亚K5车发动机怠速抖动严重、加速无力

一、故障现象 一辆2016款东风悦达起亚K5车&#xff0c;搭载G4FJ发动机&#xff0c;累计行驶里程约为8.2万km。该车发动机怠速抖动严重、加速无力&#xff0c;同时发动机故障灯异常点亮&#xff0c;为此在其他维修厂更换了所有点火线圈和火花塞&#xff0c;故障依旧&#xff0c;…

两部手机数据传输后备忘录不见了怎么回事

想必很多人都遇到过&#xff0c;当两部手机进行备忘录数据传输后&#xff0c;突然发现备忘录不见了&#xff0c;这让人不禁着急上火&#xff0c;我也曾经遇到过这种事情导致很多重要的内容都丢失了。 一般出现这种情况可能是因为&#xff0c;两部手机使用的是不同的云服务&…

Redis常用操作及应用(二)

一、Hash结构 1、常用操作 HSET key field value //存储一个哈希表key的键值 HSETNX key field value //存储一个不存在的哈希表key的键值 HMSET key field value [field value ...] //在一个哈希表key中存储多个键值对 HGET key fie…

黄金比例设计软件Goldie App mac中文版介绍

Goldie App mac是一款测量可视化黄金比例的工具。专门为设计师打造&#xff0c;可以帮助他们在Mac上测量和可视化黄金比例&#xff0c;从而轻松创建出完美、平衡的设计。 Goldie App mac体积小巧&#xff0c;可以驻留在系统的菜单栏之上&#xff0c;随时提供给用户调用。 拥有独…