Uniapp小程序中使用uEcharts图

本示例是基于uniapp小程序(使用工具创建的项目)使用uEcharts图的使用步骤说明


1.下载需要的js代码:https://gitee.com/uCharts/uCharts

2.下载之后的文件截屏如下

  • 打开第一个(uCharts-for-UNIAPP(跨端))文件夹

  • 拷贝js文件至项目文件夹(可根据自己得实际需要写)

  • 打开第二个(示例项目)文件夹下的UNIAPP文件,再拷贝common中的前文件至项目的common中

注意:之前因为只是参考了官方的代码示例,但是没有引common中的js文件,结果项目一直报错,图表也不出来,之后看了示例项目的代码才解决的

3.页面引用js及定义变量

import uCharts from '@/components/u-charts/u-charts.min.js';
var _self;
var canvaArea = null;
export default {
  data() {
    return {
      cWidth: '',
      cHeight: '',
      pixelRatio: 1,
      pixelRatio2: 1
    };
  },
onLoad() {
    _self = this;
    //#ifdef MP-ALIPAY

    uni.getSystemInfo({
      success: function(res) {
        if (res.pixelRatio > 1) {
          _self.pixelRatio = 2;
        }
      }
});

//css样式的width和height一定要与定义的cWidth和cHeight相对应
   this.cWidth = uni.upx2px(630);
    this.cHeight = uni.upx2px(240);
    this.getServerData();
  },

//methods中写方法:
//模拟获取最高成绩的方法
    getServerData() {
      uni.request({
        // url: 'https://www.ucharts.cn/data.json',
        //注意url的请求地址须与小程序的request合法域名一致(数据的请求地址),否则会出现打包上传至服务器后uEcharts图表不显示的问题
        url: config.apiHost, 
        data: {},
        success: function(res) {
          let Area = {
            categories: ['2019年11月', '3月', '4月', '5月', '6月', '7月'],
            series: [
              {
                name: '得分',
                data: [70, 80, 85, 91, 75, 86],
                color: '#fff'
              }
            ]
          };
          _self.showArea('canvasArea', Area);
        },
        fail: () => {
          _self.tips = '网络错误,小程序端请检查合法域名';
        }
      });
    },

 //显示最高成绩的区域图--uEcharts的所有配置项
    showArea(canvasId, chartData) {
      canvaArea = new uCharts({
        $this: _self,
        canvasId: canvasId,
        type: 'area',
        fontSize: 11,
        legend: { show: false },
        dataLabel: false,
        dataPointShape: true,
        background: '#FFFFFF',
        pixelRatio: _self.pixelRatio,
        categories: chartData.categories,
        series: chartData.series,
        animation: true,
        padding:[15,20,5,20],
        dataPointShapeType: 'hollow',
        xAxis: {
          type: 'grid',
          dashLength: 8,
          disableGrid: true,
          fontColor: '#fff',
          axisLineColor: '#fff',
          boundaryGap: 'justify',
          fontSize: 8
        },
        yAxis: {
          dashLength: 8,
          splitNumber: 5,
          disabled: true,
          disableGrid: true
        },
        width: _self.cWidth * _self.pixelRatio,
        height: _self.cHeight * _self.pixelRatio,
        extra: {
          area: {
            opacity: 0.8,
            gradient: true
          }
        }
      });
    },
    //最高成绩的区域图的touch事件
    touchArea(e) {
      canvaArea.touchLegend(e);
      canvaArea.showToolTip(e, {
        format: function(item, category) {
          return category + ' ' + item.name + ':' + item.data;
        }
      });
    }

4.页面显示代码

<view class="qiun-charts">
   <canvas
      canvas-id="canvasArea"
      id="canvasArea"
      class="charts"
      :width="cWidth * pixelRatio"
      :height="cHeight * pixelRatio"
      :style="{ width: cWidth + 'px', height: cHeight + 'px' }"
      @touchstart="touchArea"
      ></canvas>
     <canvas canvas-id="canvasArea" id="canvasArea" class="charts" @touchstart="touchArea"></canvas>
</view>

5.Css代码

/*样式的width和height一定要与定义的cWidth和cHeight相对应*/
.qiun-charts {
	width: 630upx;
	height: 240upx;
	background: transparent;
	margin: auto;
}

.charts {
	width: 630upx;
	height: 240upx;
	background: transparent;
}

补充1:页面效果:X轴时间显示不全可修改padding的值进行调整

解决办法:调整padding的距离即可(按照:上右下左)

补充2:饼图图例间距的调整legenditemGap的距离即可

温馨提示:有时代码写好无误,数据图表就是不出来,有时需要清一下缓存哟

uEcharts官网地址:https://www.ucharts.cn/

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值