canvas画条形图 微信小程序_微信小程序内使用canvas绘制自定义折线图表

话不多说,最终实现效果如下:

图中难点:

最左或者最右边的气泡需要做动态偏移

本项目是由mpvue写的小程序:所以用的是vue的书写格式(微信小程序可以自行修改):

使用方法:

将下列代码新建linechart.vue文件

再项目中调用本组件的drawAll方法传入日期和值即可

代码中有少量注解请不懂的给我留言

export default {

data() {

return {

canvasWidth: 375,

canvasHeight: 123,

date: ['-/-','-/-','-/-','-/-','-/-','-/-','-/-'],

value: [0,0,8,10,6,0,0,],

len: 4,

xcoords: []

}

},

onLoad() {

this.drawAll()

},

methods: {

drawAll(date, value) {

this.date = date || this.date

this.value = value || this.value

var ctx = wx.createCanvasContext('canvasline')

this.roundRect(ctx, this.px2PX(10), 0, this.px2PX(this.canvasWidth) - this.px2PX(20), this.px2PX(this.canvasHeight), this.px2PX(8), '#F5F3ED');

this.drawYLine(ctx, this.px2PX(20), 0, this.px2PX(20), this.px2PX(this.canvasHeight),this.px2PX(55), this.px2PX(1), 'white')

this.drawXLine(ctx, this.len, this.px2PX(1), 'white');

this.drawLine(ctx, this.px2PX(1.5), this.px2PX(3))

ctx.draw()

},

px2PX(px) { // px (Int) 375为设计稿宽度,根据屏幕动态设置像素大小解决模糊问题和适配

return (wx.getSystemInfoSync().screenWidth / 375) * Number(px)

},

/**

*

* @param {CanvasContext} ctx canvas上下文

* @param {number} x 圆角矩形选

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值