1.先来个效果图

这里我用的是插件@antv/f2-canvas(安装的方法如下)

npm init 此处如果直接使用官方npm install 可能会出现没有node_modules错误

npm install --production 建议使用–production选项,可以减少安装一些业务无关的 npm 包,从而减少整个小程序包的大小

npm i @antv/f2-canvas 安装微信小程序 F2 图表组件

安装好依赖包之后,运行 (点击开发者工具顶部详情,勾选 使用npm模块,再点击菜单栏中工具下的构建npm即可运行)

json文件里加这个

"usingComponents": {
"ff-canvas": "@antv/f2-canvas"
}

js文件

const F2 = require('@antv/wx-f2');
let chart = null;
page({
data:{
opts: {
lazyLoad: true
},
},
// 折线图
getMothElectro: function (type) {
let that = this;
// 体重曲线表
app.post('/user/Charts', {
type: type
}).then((res) => {
// console.log(res)
that.setData({
list: res.data.list
})
//这里是把后台返的数据做一下处理 let arr = [];
let array1 = [];
let array2 = [];
let weightArr = [];
// for (let value of res.chart) {
for (let i = 0; i < res.chart.length; i++) {
let value = res.chart[i];
if (value.weight == '') {
value.weight = null;
} else {
value.weight = value.weight;
weightArr.push(value.weight);
} let item = {
city: '',
date: value.date,
areaValue: [(value.low.toFixed(2)) * 1, value.hign.toFixed(2) * 1]
}
let item1 = {
city: '',
date: value.date,
weight: value.weight
}
array1.push(item)
array2.push(item1)
arr = array1.concat(array2)
} this.chartComponent = this.selectComponent('#column-dom');
this.chartComponent.init((canvas, width, height) => { //这里是计算y轴坐标可以跟着数据变,区间小一点,自适应数据
var min = ((Math.min.apply(Math, weightArr)).toFixed(1)) * 1;
var max = ((Math.max.apply(Math, weightArr)).toFixed(1)) * 1;
if (max - min <= 10) {
max = max + 2;
}
if (min % 5 == 0) {
min = min - 2;
}
if (min > res.chart[0].low) {
min = parseInt(res.chart[0].low);
}
if (max < res.chart[res.chart.length - 1].hign) {
max = parseInt(res.chart[res.chart.length - 1].hign);
} let max3 = (((max - min) / 3) * 1 + min).toFixed(1); chart = new F2.Chart({
el: canvas,
width,
height
}); chart.source(arr, {
date: {
range: [0, 1],
type: 'timeCat',
mask: 'MM/DD',
tickCount: 5,
},
weight: {
type: 'linear',
tickCount: 4,
ticks: [min, max3, (max - max3 + min).toFixed(1) * 1, max],
formatter: function formatter(ivalue) {
return ivalue + 'kg';
}
},
areaValue: {
type: 'linear',
tickCount: 4,
ticks: [min, max3, (max - max3 + min).toFixed(1) * 1, max],
formatter: function formatter(ivalue) {
return ivalue + 'kg';
}
}, });
chart.axis('areaValue', false);//这里的图表是双y轴,所以隐藏一个,把右边的隐藏 chart.line({
connectNulls: true // 配置,连接空值数据
}).position('date*weight').shape('smooth').color('city', ['#EF597F']);
chart.point({
connectNulls: true // 配置,连接空值数据
}).position('date*weight').color('city', ['#EF597F']).style({
// stroke: '#EF597F',
// lineWidth: 1
}); chart.area({
connectNulls: true // 配置,连接空值数据
}).position('date*areaValue').shape('smooth').color('city', ['#2ECBB1', '#2ECBB1']); chart.legend(false);
chart.tooltip(false);
chart.render();
// 注意:需要把chart return 出来
return chart;
}) }) },
})

 你的数据格式是这个样子的(如果返回格式不一致可自行处理)

这个City字段,你也可以写标题,如果不写,就是后面图表配置颜色有个空字段,不然你的图表没有颜色,用其他非空的字段可能会报错,配置可以看@antv的官网,这是两个图表结合的

wxml文件

<view class="container_canvas">
<ff-canvas id="column-dom" canvas-id="column" opts="{{ opts }}" />
</view>

  

微信小程序折线图表折线图加区域图的更多相关文章

  1. 微信小程序_(组件)swiper轮播图

    微信小程序swiper轮播图组件官方文档 传送门 Learn: swiper组件 一.swiper组件 indicator-dots:是否显示面板指示点[默认值false] autoplay:是否自动 ...

  2. 【云开发】10分钟零基础学会做一个快递查询微信小程序,快速掌握微信小程序开发技能(轮播图、API请求)

    大家好,我叫小秃僧 这次分享的是10分钟零基础学会做一个快递查询微信小程序,快速掌握开发微信小程序技能. 这篇文章偏基础,特别适合还没有开发过微信小程序的童鞋,一些概念和逻辑我会讲细一点,尽可能用图说 ...

  3. 微信小程序实现图表展示

    开发可参考以下链接 点击有道云链接 小程序柱状图展示 [单元目标] 掌握小程序柱状图展示 [教学内容] 1.1 掌握组件导入 在miniprogram下的utils文件夹(若没有就新建一个)下,新建w ...

  4. 微信小程序导出当前画布指定区域的内容并生成图片保存到本地相册(canvas)

    最近在学小程序,在把当前画布指定区域的内容导出并生成图片保存到本地这个知识点上踩坑了. 这里用到的方法是: wx.canvasToTempFilePath(),该方法作用是把当前画布指定区域的内容导出 ...

  5. 【微信小程序】:实现轮播图3秒滚动

    wxml模板:(数据一维数组) <scroll-view scroll-y="true"> <swiper autoplay="auto" i ...

  6. 微信小程序之 Swiper(轮播图)

    1.逻辑层 mine.js // pages/mine/mine.js Page({ /** * 页面的初始数据 */ data: { /*轮播图 配置*/ imgUrls: [ 'http://im ...

  7. 微信小程序中自定义swiper轮播图面板指示点的样式

    重置样式: .swiper{ width: 100%; height: 240px; margin-bottom: 0.5rem; position:relative; } div.wx-swiper ...

  8. 微信小程序学习指南

    作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  9. 微信小程序开源

    | UI组件 | | | | | | | | | weui-wxss ★1873 - 同微信原生视觉体验一致的基础样式库 | | | | | | zanui-weapp ★794 - 好用易扩展的小程 ...

随机推荐

  1. 【uva 1617】Laptop(算法效率--贪心,2种理解)

    题意:有N条长度为1的线段,要求使每条线段分别在相应区间,且"空隙"数目最小.输出"空隙"数.(1≤N≤100000) 解法:(P.S.我这题竟做了2个多小时, ...

  2. 【noi 2.6_6045】开餐馆(DP)

    题意:有N个地址,从中选一些开餐馆,要保证相邻餐馆的距离大于k.问最大利润. 解法:f[i]表示在前 i 个地址中选的最大利润. 1 #include<cstdio> 2 #include ...

  3. python的scrapy框架的使用 和xpath的使用 && scrapy中request和response的函数参数 && parse()函数运行机制

    这篇博客主要是讲一下scrapy框架的使用,对于糗事百科爬取数据并未去专门处理 最后爬取的数据保存为json格式 一.先说一下pyharm怎么去看一些函数在源码中的代码实现 按着ctrl然后点击函数就 ...

  4. 二分图最大权匹配问题&&KM算法讲解 && HDU 2255 奔小康赚大钱

    作者:logosG 链接:https://www.cnblogs.com/logosG/p/logos.html (讲解的KM算法,特别厉害!!!) KM算法: 现在我们来考虑另外一个问题:如果每个员 ...

  5. 吉哥系列故事――恨7不成妻 HDU - 4507

    题目: 单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都讨厌! 吉哥观察了214和77这两个数,发现: 2+1+4=7 7+7=7*2 ...

  6. MySQL中为避免索引失效所需注意的问题

    一.索引介绍 二.索引的优势与劣势 1.优势 类似于书籍的目录索引,提高数据检索的效率,降低数据库的IO成本. 通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗. 2.劣势 实际上索引也 ...

  7. 自动生成requirements.txt

    Python 自动生成当前项目的requirements.txt 通常我们开发一个python项目时都会用conda 或者 virtualenv 等虚拟环境管理工具来创建一个虚拟环境,在这个虚拟环境中 ...

  8. UESTC - 1222 Sudoku(深搜)

    Yi Sima was one of the best counselors of Cao Cao. He likes to play a funny game himself. It looks l ...

  9. 手工数据结构系列-C语言模拟栈 hdu1022

    这个题我一开始是这么想的.. 爆搜所有可能的出栈序列 然后对输入进行匹配 这样我感觉太慢 然后我们可以想到直接通过入栈序列对出栈序列进行匹配 但是我犯了一个错误..那就是出栈序列一定到入栈序列里找.. ...

  10. npm config set registry

    npm config set registry $ npm config set registry $ npm config set registry https://registry.your-re ...