微信小程序中使用echarts方法

news2024/12/24 20:54:24

小程序中使用echarts

echarts是一个基于JS的数据可视化图标库,它提供了直观,生动,可交互,可个性定制的数据可视化图表。一般在vue中会使用到,并且官网也详细的说明了如何在vue中使用,但是今天我想来探讨的是,如何在微信小程序中使用echarts

1. ec-canvas的github仓库

官网中介绍到:echarts-for-weixin 项目提供了一个小程序组件,用这种方式可以方便地使用 ECharts。

可以点击上方链接,到官网指定的地址下载图中圈中的项目ec-canvas

2. 下载 ec-canvas项目

然后就是把这个项目下载自己的电脑上,但是这里有一个非常重要的一个点,决定你的图表是否能够出来,在我下面这张图中圈的位置,一定要注意自己下的是哪个版本,因为echarts.js很大,一般使用的话,都直接在官网定制,小程序中不会放很多echarts图表,否则整个项目太大了,会跑不起来的。

3. 去echarts官网定制

 3.1  定制自己需要的图形:接下来就是找到官网,去定制自己需要的图表(官网地址不用我再说了吧,百度也能找到的)。

3.2 点击下载,进入定制页面 :往最下面翻,方法三:在线定制

在这个页面选择你需要的东西,注意!注意!注意!这里的选择版本必须和上面下载的ec-canvas中的echarts.js的版本对应必须!必须!必须!本人当初就是吃了这个亏,嘤嘤嘤~,选择完成后,翻到最下面点击下载按钮

3.3 然后你就会再开一个窗口下载一个文件,这时候就等着就好了。等到OK了,说明下载好了

3.4 找到你下载的文件:echarts.min.js

准备工作都做好了!!!接下来的都是重点

4. 下载替换

接下来就开始往你的小程序里面植入了。你可以自己新建一个components,把echarts这个目录放进去,原目录中的echarts.js删了不要,太大了,换成上一步下载的echarts.min.js,还有一点注意的就是ec-canvas.js的import引入的是原来的echarts.js文件,你需要自己改成刚才下载的文件

5. 引入使用

然后在你需要引入echarts的文件中开始操作,,在js文件中引入此文件(自己找此文件位置并引入)

 import * as echarts from '../../components/echarts/echarts.min'
 function bar(canvas, width, height, dpr) {
    const chart = echarts.init(canvas, null, {
        width: width,
        height: height,
        // devicePixelRatio: dpr
    });
    canvas.setChart(chart);
 let option = {
    xAxis: {
      type: 'category',
      data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
      type: 'value'
    },
    series: [
      {
        data: [120, 200, 150, 80, 70, 110, 130],
        type: 'bar',
        showBackground: true,
        backgroundStyle: {
          color: 'rgba(180, 180, 180, 0.2)'
        }
      }
    ]
  };
  chart.setOption(option);
  return chart;
}

在date里写: 

data: {
    ec: {
      onInit: bar
    },
  },

所有的操作都在option中,需要配置其他属性的话,可查看配置项手册或者打开示例配置

JSON文件引入的是目录中的ec-canvas.js

在这里插入图片描述

 WXML文件:这里的ec是组件对象,对应着js文件里data的ec

<view class="ec-box">
    <ec-canvas canvas-id="echart-bar" ec="{{ec}}"></ec-canvas>
</view>

wxss文件:(给echarts的容器设置宽高)

ec1-box {
  width: 100%;
  height: 406rpx;
}

这样echarts的引入和使用就成功了。

echarts的option配置知识点归纳整理(还在更新):

  • 通用:
    1、grid: {
                left: "0", //距离容器左边的距离
                right: "0",  //距离容器右边的距离
                bottom: "0",  //距离容器下边的距离
                top: "33",  //距离容器上边的距离
                containLabel: true //是否显示坐标轴
            },
    2、xAxis: [{
                type: 'category',  // 坐标轴类型
                // prettier-ignore
                axisLabel: {  // 设置X轴坐标轴名称字体样式
                    textStyle: {
                        fontSize: "10",
                        fontWeight: '400',
                        color: '#999999',
                        fontFamily: 'PingFangSC-Regular, PingFang SC'
                    },
                },
                axisTick: {
                    show: false  // 是否显示X轴坐标轴刻度
                },
                axisLine: {
                    show: false  // 是否显示X轴坐标轴线
                },
                data: ['07/08', '07/09', '07/10', '今天']  // X轴字段数据
            }],   
    3、yAxis: [{
                type: 'value',   // 坐标轴类型
                axisLabel: {   // 设置Y轴坐标轴名称字体样式
                    textStyle: {
                        fontSize: "10",
                        fontWeight: '400',
                        color: '#999999',
                        fontFamily: 'PingFangSC-Regular, PingFang SC'
                    },
                },
                name: '元',  // 设置Y轴坐标轴单位
                nameTextStyle: { //  单位样式
                    color: "#999999", //  字体颜色
                    fontSize: 10, //  字体大小
                    padding: [0, 26, 0, 0], //  内填充
                    fontFamily: 'PingFangSC-Regular, PingFang SC',  // 字体
                    fontWeight: 400, 
                }
            }], 
    4、tooltip: { // 提示框组件
                show: true,
                confine: false, //是否将 tooltip 框限制在图表的区域内
                backgroundColor: 'rgba(0,0,0,0.65)', //提示框浮层背景色
                trigger: 'axis',
                dashOffset: 10,
                padding: 6, //上右下左内边距
                textStyle: { //提示框浮层的文本样式
                    color: '#fff',
                    fontSize: 10,
                    lineHeight: 10,
                },
                axisPointer: { //坐标轴指示器配置项
                    type: 'line', //直线指示器
                    z: 1,
                    lineStyle: {
                        type: 'dashed',
                        color: '#979797',
                        shadowOffsetY: -7,
                        shadowColor: '#979797',
                    }
                },
            }, 
    5、 legend: {  // 图例组件
                orient: 'horizontal', //  布局朝向(横向/(纵向:vertical))
                right: 0, // legend位置调整
                icon: "circle", // legend标记样式
                itemHeight: 8, // legend标记样式高度
                itemWidth: 8, // legend标记样式宽度
                itemGap: 12, // legend标记的间距
                textStyle: {  // 图例文本样式
                    fontSize: 10,
                    fontFamily: 'PingFangSC-Regular, PingFang SC',
                    fontWeight: 400,
                    color: '#666666',
                    padding: [0, 0, 0, 6] //文字与图形之间的左右间距
                },
                data: ['收入', '支出']  //图例数据数组
            },
    
  • 柱形图:
    1、series: [{  // 双柱图数据
                    name: '收入',
                    type: 'bar',
                    barWidth: '10', // 柱状图宽度
                    barGap: '60%',
                    label: {
                        // 设置显示label
                        show: true,
                        // 设置label的位置
                        position: 'top',
                        // 设置label的文字颜色
                        color: '#999999',
                        fontFamily: 'PingFangSC-Regular, PingFang SC',
                        fontWeight: 500,
                        fontSize: '10',
                        // 格式化label文字
                        formatter: function (data) {
                            return Math.round(data.value).toFixed(2)
                        },
                    },
                    data: [
                        25.6, 76.7, 135.6, 162.2,
                    ],
                    itemStyle: {
                        color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ // 设置柱状图渐变色
                            offset: 0,
                            color: "#FF991C" // 0% 处的颜色
                        }, {
                            offset: 0.6,
                            color: "#ffb720" // 60% 处的颜色
                        }, {
                            offset: 1,
                            color: "#FFCD24 " // 100% 处的颜色
                        }], false),
                        barBorderRadius: [3, 3, 0, 0], // 柱形图圆角
                    },
                },
                {
                    name: '支出',
                    type: 'bar',
                    barWidth: '10', // 柱状图宽度
                    label: {
                        // 设置显示label
                        show: true,
                        // 设置label的位置
                        position: 'top',
                        // 设置label的文字颜色
                        color: '#999999',
                        fontFamily: 'PingFangSC-Regular, PingFang SC',
                        fontWeight: 500,
                        fontSize: '10',
                        // 格式化label文字
                        formatter: function (data) {
                            return Math.round(data.value).toFixed(2)
                        },
                    },
                    data: [
                        70.7, 175.6, 182.2, 48.7
                    ],
                    itemStyle: {
                        color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ // 设置柱状图渐变色
                            offset: 0,
                            color: "#4186F5" // 0% 处的颜色
                        }, {
                            offset: 0.6,
                            color: "#73affa" // 60% 处的颜色
                        }, {
                            offset: 1,
                            color: "#9CD2FF  " // 100% 处的颜色
                        }], false),
                        barBorderRadius: [3, 3, 0, 0], // 柱形图圆角
                    },
                }
            ]
    
  • 折线图:
    1、  series: [{  // 折线图数据
                    name: '完成订单',
                    type: 'line',
                    stack: 'Total',
                    symbol: 'circle', // 折线图折点样式(实心)
                    symbolSize: 4, // 折线图折点的大小样式
                    lineStyle: {
                        color: 'pink' // 设置折线颜色
                    },
                    data: [120, 132, 101, 134, 90, 230, 210]
                },
                {
                    name: '取消订单',
                    type: 'line',
                    symbol: 'circle', // 折线图折点样式(实心)
                    symbolSize: 4, // 折线图折点的大小样式
                    stack: 'Total',
                    data: [220, 182, 191, 234, 290, 330, 310]
                },
            ]
        };
    

    小结

    以上就是小程序使用echarts步骤知识点了~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python面试宝典1

目录标题 python基础1、代码中修改不可变数据会出现什么问题&#xff1f;什么异常&#xff1f;2、a1,b2,不用中间变量交换 a 和 b 的值&#xff1f;3、print调用python中底层的什么方法&#xff1f;4、理解下面代码&#xff0c;结果输出5、对input()函数的理解6、理解代码&…

誉天程序员-常用网站

学习方法六大招 日常你是如何学习新知识的&#xff1f;&#xff08;面试官爱问哦&#xff09; 1、百度百科概念了解 2、技术官网简单了解 3、同类产品技术选型 4、百度搜索入门案例 5、泛读百文瘦弱圆润 6、遇到问题问AI助手&#xff08;chatGPT&#xff09;噢 技术路线图&a…

C#中未能找到为main方法指定的XXX.Program怎么解决

有时在修改项目名称后&#xff0c;报错未能找到为main方法指定的XXX.Program 解决办法&#xff1a; 点击进入项目属性&#xff0c;将启动对象设置为空或者你要指定的XXX.Program&#xff08;改名后的&#xff09;

基于SDRAM的串口回环测试

文章目录 前言一、SDRAM简介二、SDRAM芯片手册解析2.1 芯片信息2.2 功能描述2.3 指令集 三、SDRAM配置3.1 初始化3.2 自动刷新3.3 突发写操作3.4 突发读操作3.5 仲裁3.5 FIFO控制3.5 FIFO数据读 四、结果验证 前言 本文将介绍在AWC_C4MB开发板上进行基于串口的SDRAM数据回环测试…

能直接运营的校园跑腿代买拿寄取小程序开发

​说到做跑腿生意&#xff0c;除了做同城跑腿配送外&#xff0c;校园跑腿可是即成本又低又好操作的一个项目。 一般省会城市大学大专基本都是有好几所的&#xff0c;学校的特点是人员密集&#xff0c;跑腿配送周期短&#xff0c;且配送人员好招募&#xff0c;推广人员好招募。…

css - Media Query

使用bootstrap的grid system可以在一个较为粗糙的范围得到较好的响应性&#xff0c;但是通过viewport可以看到网站在具体哪个像素点处变得丑陋&#xff0c;再通过css media query来精细调整网页布局。 可以通过media query来提高网页移动响应能力。

网络安全 Day17-计算机网络知识02(复杂物理原件)

计算机网络知识02&#xff08;复杂物理原件&#xff09; 1. 交换机2. 路由器 1. 交换机 什么是交换机 实现一个网络内多台主机之间通讯的设备用于电信号转发和放大的网络设备 常见的交换机&#xff1a;以太网交换机&#xff0c;电话交换&#xff0c;光纤交换机交换机的种类 二…

MySQL基础(三十一)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、概述 1. 什么是数据库 2. 数据库能干什么 2.1 企业应用 2.2 金融行业 2.3 电子商务 2.4 社交媒体 2.5 物联网 3. 为什么要用数据库&#xff0c;优势、特性&…

C#常见技能_参数传递

大家好&#xff0c;我是华山自控编程朱老师 前几天一个学员在学习C#与参数传递交互时,也不知道参数传递可以用来做什么 。下面我们就详细讲讲C# 和参数传递交互的相关知识。 C#是一种面向对象的编程语言&#xff0c;支持多种参数传递方式&#xff0c;包括传值和传引用两种方式…

Ubuntu18.04 下配置Clion

配置Clion 安装gcc、g、make Ubuntu中用到的编译工具是gcc©&#xff0c;g&#xff08;C&#xff09;&#xff0c;make(连接)。因此只需安装对应的工具包即可。Ubuntu下使用命令安装这些包&#xff1a; &#xff08;1&#xff09;安装gcc sudo apt install gcc&am…

Mysql错误日志、通用查询日志、二进制日志和慢日志的介绍和查看

一.日志 1.日志和备份的必要性 日志刷新 2.mysql的日志类型 &#xff08;1&#xff09;错误日志 查看当前错误日志和是否记录警告设置 &#xff08;2&#xff09;通用查询日志 查看通用查询日志的设置 &#xff08;3&#xff09;二进制日志 查看二进制文件的设置&…

【Java基础教程】(四十五)IO篇 · 中:转换流、内存流和打印流(探索装饰设计模式与PrintStream类的进阶),文件操作案例实践、字符编码问题~

Java基础教程之IO操作 中 &#x1f539;本节学习目标1️⃣ 转换流2️⃣ 案例&#xff1a;文件复制3️⃣ 字符编码4️⃣ 内存流5️⃣ 打印流5.1 打印流设计思想——装饰设计模式5.2 打印流5.3 PrintStream 类的改进 &#x1f33e; 总结 &#x1f539;本节学习目标 掌握内存操作…

C++初阶 - 5.C/C++内存管理

目录 1.C/C的内存分布 2.C语言中动态内存管理方式&#xff1a;malloc、calloc、realloc、free 3.C内存管理方式 3.1 new/delete操作内置类型 3.2 new 和 delete操作自定义类型 4.operator new 与 operator delete 函数&#xff08;重要点&#xff09; 4.1 operator new 与…

Go语言开发者的Apache Arrow使用指南:扩展compute包

在本系列文章的第4篇《Go语言开发者的Apache Arrow使用指南&#xff1a;数据操作》[1]中我们遇到了大麻烦&#xff1a;Go的Arrow实现居然不支持像max、min、sum这样的简单聚合计算函数:(&#xff0c;分组聚合(grouped aggregation)就更是“遥不可期”。要想对从CSV读取的数据[2…

如何在代码中用宏定义确定VS编译器版本

我们经常需要将同一个代码文件在不同的编译器下编译&#xff0c;实际上对应着不同的代码&#xff0c;这个时候就可以使用宏定义来进行判断&#xff0c;比如如下代码&#xff1a; #if _MSC_VER >1900 // VS2015或者以上 #ifndef _CRT_SECURE_NO_WARNINGS #define _CRT_SECUR…

第十四届蓝桥杯大赛青少年省赛C++组试题真题 2023年5月

一、选择题 第 1 题 单选题 C中&#xff0c;bool类型的变量占用字节数为 ( )。 A. 1 B. 2 C. 3 D. 4 第 2 题 单选题 以下关于C结构体的说法&#xff0c;正确的是 ( )。 A. 结构体中只能包含成员变量&#xff0c;不能包含成员函数 B. 结构体不能从另一个结构体继承 …

发布npm包流程

发布npm包的步骤如下&#xff1a; 在终端中通过 npm init 命令创建一个新的npm包&#xff0c;按照提示填写包的信息&#xff0c;如包名称、版本、描述、作者、许可证等。 在包的根目录下创建一个 index.js 文件&#xff0c;编写你的代码。 确认你已经注册了npm账号&#xff0…

Vue二次封装axios为插件使用

基本的封装要求&#xff1a;统一 url 配置 统一 api 请求 request (请求)拦截器&#xff0c;例如&#xff1a;带上token等&#xff0c;设置请求头 response (响应)拦截器&#xff0c;例如&#xff1a;错误处理&#xff0c;页面重定向等 根据需要&#xff0c;结合 Vuex 做全局的…

【三维点云处理】顶点、面片、邻接矩阵、邻接距离矩阵以及稀疏存储概念

文章目录 vts和faces基础知识vertices-节点&#xff08;3是点的三维坐标&#xff09;faces-面片&#xff08;3是构成三角形面片的3个点&#xff09; 邻接矩阵邻接距离矩阵&#xff08;NN500&#xff09;稀疏矩阵 vts和faces基础知识 vertices-节点&#xff08;3是点的三维坐标…

git 实操

首先有安装好的git,安装好后,会在任一目录下右键出现git bash和git gui两个选项 打开git bash,设置好全局变量,用户名和邮箱,设置方法为: git config -- global user.name "xxx" git config --global user.email "xxxxxx.com" 1.创建版本库 git init 命…