微信小程序echarts-饼状图

news/2024/11/15 9:47:01/文章来源:https://www.cnblogs.com/czhowe/p/18373125

为了兼容小程序 Canvas,我们提供了一个小程序的组件,用这种方式可以方便地使用 ECharts。

首先,下载 GitHub 上的 ecomfe/echarts-for-weixin 项目。

一、封装pieChart组件

pieChart.wxml:

<view class="container"><ec-canvas id="mychart-dom-bar" class='mychart-bar' canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas>
</view>

pieChart.json:

"usingComponents": {"ec-canvas": "../../utils/ec-canvas/ec-canvas"
}

pieChart.wxss:

.container {width: 100%;height: 600rpx;font-size: 0;/* background-color: pink; */display: flex;justify-content: center;align-items: center;position: relative;
}.mychart-bar {display: inline-block;width: 100%;height: 100%;vertical-align: top;
}

pieChart.js:

import * as echarts from '../../utils/ec-canvas/echarts';Component({data: {ec: {lazyLoad: false, // 延迟加载}, //饼图pieObj: null,},piechartsComponnet: null,properties: {dataObj: {type: Object,observer: function (nVal, oVal) {// console.log(nVal)if (nVal) {this.setData({pieObj: nVal,})setTimeout(() => {this.init_pieCharts()}, 300);}},},},lifetimes: {attached: function () {this.piechartsComponnet = this.selectComponent('#mychart-dom-bar'); //饼图
        }},methods: {init_pieCharts: function () { //初始化图表--饼图this.piechartsComponnet.init((canvas, width, height) => {// 初始化图表const pieChart = echarts.init(canvas, null, {width: width,height: height});pieChart.setOption(this.getPieOption());// 注意这里一定要返回 chart 实例,否则会影响事件处理等return pieChart;});},getPieOption: function () { //饼图console.log(this.data.pieObj)var pieObj = this.data.pieObj;/*开发文档参考:https://echarts.apache.org/zh/option.html#legend.zlevel*/var option = {title: {// text: '收益分布',subtext: pieObj.title || '',left: 15,},tooltip: {show: true,formatter: function (params) {// console.log(params)return params.name + ': ' + params.data.number + ' (' + (params.percent - 0).toFixed(0) + '%)'}},toolbox: {show: true,feature: {mark: {show: true},dataView: {show: true,readOnly: false},restore: {show: true},saveAsImage: {show: true}}},legend: {orient: 'vertical',right: 20,align: 'left',bottom: '25%',itemWidth: 10,itemHeight: 10,},color: pieObj.color || ['#FEDC75', '#797AFF', '#FE8683'],calculable: true,series: [{name: '收益分布',type: 'pie',center: ['35%', '50%'],radius: 80,itemStyle: {normal: {label: {show: true,position: 'inner',formatter: function (params) {// console.log(params)return params.data.number + '\n' + (params.percent - 0).toFixed(0) + '%'}},labelLine: {show: false}},},data: pieObj.data}]}// var option = this.data.pieObj;// console.log(option)return option;},}
});

二、使用组件

wxml

<pieChart dataObj="{{dataObj1}}" class="ec-canvas" force-use-old-canvas="true"></pieChart>

json

"usingComponents": {"pieChart": "/components/echart/pieChart"
}

js

//处理饼状图数据 
this.setData({dataObj1: {title: '收益分布', //标题color: ['#797AFF', '#FE8683', '#FEDC75'], //饼状图颜色
                data: [{value: 50,number: 1000,name: '交易收益',}, {value: 30,number: 600,name: '企业功能收益'},{value: 20,number: 400,name: '新会员共享收益'}]},
})

显示图:

 

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

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

相关文章

【Python脚本】刚度矩阵格式转换

一个Python脚本,用来将一个刚度转换到不同的商业软件,进行二次开发对于1-2-3坐标系:应力矩阵如下: \[\left.[\sigma]=\left[\begin{array}{ccc}\sigma_{11}&\sigma_{12}&\sigma_{13}\\\sigma_{12}&\sigma_{22}&\sigma_{23}\\\sigma_{13}&\sigma_{23}&…

DP斜率优化学习笔记

最后一次修改:2024.7.16 14:39 P.M By 哈哈铭 简介 “斜率优化”顾名思义就是用斜率进行优化,让 \(DP\) 的时间复杂度更优。 一般情况下,将动态转移方程化简后得到这样的关系式: \[\frac{y_1-y_2}{x_1-x_2} \leq K \]然后通过该式进行转移,以达到优化时间复杂度的目的。 小…

LLM 推理 服务

目录vLLMPagedAttention:解决内存瓶颈vLLM 的安装与使用 vLLM 加州大学伯克利分校的研究者开源了一个项目 vLLM,该项目主要用于快速 LLM 推理和服务。 vLLM 的核心是 PagedAttention,这是一种新颖的注意力算法,它将在操作系统的虚拟内存中分页的经典思想引入到 LLM 服务中。…

批量图像识别的快速遍历技巧

本周我们来介绍一下如何快速地批量遍历图片列表找到图片对应的位置或对应关系,也很感谢Q群2群lincoln同学的分享,感兴趣的同学可以戳推文详细阅读~此文章来源于项目官方公众号:“AirtestProject” 版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途一、前…

系统缓存可以删吗,删除系统缓存的方法有哪些

系统缓存是可以清理的,这些文件在长时间积累后可能会占用大量的磁盘空间,甚至影响电脑的性能。以下是一些清理C盘缓存的方法: 一、清理系统缓存 1.使用磁盘清理工具: 打开“此电脑”,右键点击C盘,选择“属性”。在“常规”选项卡中,点击“磁盘清理”。 系统将扫描C盘上的…

关于电脑晚上自动关机的问题,系统win11

前提:由于工作需要,有时需电脑在晚上仍能保持运行,但目前突然出现电脑晚上自动关机的情况,故需寻找解决方法。 解决方案:原文地址 方法:本次主要采取原文中所提及的方法二。 step1:搜索设备管理器step2:找到系统设备step3:在系统设备中找到Intel(R) Management Engine…

Vue 之混入(mixin)详细介绍

混入(mixin)提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项(如data、methods、mounted、filters等等)。 一、注册使用 1、在main.js中全局配置import mixin from ./mixinsVue.mixin(mixin)2、组件中配置 在日常的开发中,我…

Goby 漏洞发布|泛微 e-cology v10 appThirdLogin 权限绕过漏洞【漏洞复现】

漏洞名称:泛微 e-cology v10 appThirdLogin 权限绕过漏洞 English Name:Weaver e-cology v10 appThirdLogin Permission Bypass Vulnerability CVSS core: 7.5 漏洞描述: 泛微新一代数字化运营构建平台E10,是基于原eteams平台之上全新研发,同时融合了原E9产品的所有功能,…

[VS Code扩展]写一个代码片段管理插件(二):功能实现

@目录创建和插入代码片段代码片段列表代码片段预览代码片段编辑自定义映射默认映射自动完成项目地址 创建和插入代码片段 VS Code扩展提供了数据存储,其中globalState是使用全局存储的Key-Value方式来保存用户状态,支持在不同计算机上保留某些用户状态,详情请参考官方文档 若…

DLAFormer:微软提出多任务统一的端到端文本分析Transformer模型 | ICDAR 2024

论文提出新颖的基于Transformer的端到端方法DLAFormer,在统一的模型中集成多个文档布局分析任务,包括图形页面对象检测、文本区域检测、逻辑角色分类和阅读顺序预测。为了实现这一目标,将各种DLA子任务视为关系预测问题并提出了统一标签空间方法,使得统一关系预测模块能够有…

MySql Excel 数据导入

mysql工具:Navicat Premium 15 导入文件:file_Excel.xlsx 1.选择要导入到的表,右键选择导入向导,先择excel, 2.选择导入的数据文件,勾选excel的表名 3.设置字段选项,通配符 4.选择目标表,也可以自动新建表 5.字段对应关系展示,不匹配的会跳过 6.导入模式,追加或覆盖,…

Debian12+openresty1.25.3.2 部署 markdown在线编辑器 Editor.md

openresty的下载安装步骤参考: http://openresty.org/cn/linux-packages.html#debian 安装完成后:conf目录: /etc/openresty -> /usr/local/openresty/nginx/conf/html目录: /usr/local/openresty/nginx/htmlEditor.md 部署: cd /usr/local/openresty/nginx/htmlgit cl…