关于echarts再微信小程序的使用

首先 目前的话微信小程序是支持echarts的引入使用的 那么其实还是有很多人不会一个引入和使用 这篇文章主要说的是如何引入eacharts 更多详情请移步到官网查看

第一 打开官方的文档 地址为Examples - Apache ECharts 打开以下的使用手册

关于echarts再微信小程序的使用_第1张图片

第二 点击应用篇 点击微信小程序

关于echarts再微信小程序的使用_第2张图片

第三 将里面的文件克隆或者下载到自己的桌面上

关于echarts再微信小程序的使用_第3张图片

第四 将里面的ec-canvas整个文件复制下来 到自己需要的小程序上的根目录粘贴

关于echarts再微信小程序的使用_第4张图片

第五 再js文件下通过es6的模块化方式引入 如我以下的例子 然后声明一个变量装着整个echarts 我喜欢全局的一个变量 所以我声明如下

 

具体再什么的目录下要根据自己的实际文件情况来 

那么接下里的话就是echarts的一个配置了

wxml的时候

 注意 id 和canvas 和ec一定要写  建议的话是拿个盒子将它包起来 有利于调整宽度和高度

在js文件里的写法

因为wxml上面的话是声明好了ec 那么我们也应该需要配置好对应的ec 写法如下

关于echarts再微信小程序的使用_第5张图片

 initChart是一个函数 我们要去给它写好echarts的一个配置 接下来在小程序的生命周期外的时候直接配置就好

function initChart(canvas, width, height, dpr) {
    chart = echarts.init(canvas, null, {
        width: width,
        height: height,
        devicePixelRatio: dpr // 像素
    });
    canvas.setChart(chart);

    let option = getItemInfo()
    this.chart=chart
    chart.setOption(option);
    
    return chart;
}

function getItemInfo() {
    return {

        title: {
            text: 'Basic Radar Chart'
        },
        radar: {
            // shape: 'circle',
            indicator: [{
                    name: `语文:123`+`级排:321`,
                    max: 6500
                },
                {
                    name: `数学:123`+`级排:321`,
                    max: 16000
                },
                {
                    name: `英语:123`+`级排:321`,
                    max: 30000
                },
                {
                    name: `历史:123`+`级排:321`,
                    max: 38000
                },
                {
                    name: `政治:123`+`级排:321`,
                    max: 52000
                },
                {
                    name: `法语:123`+`级排:321`,
                    max: 25000
                }
            ],
            //调试字体颜色等等
            axisName: {
                color: '#fff',
                backgroundColor: '#666',
                borderRadius: 3,
                lineHeight:18,
                width:10,
                height: 50,
                fontWeight:500,
                formatter: function (params, indicator) {
                    let newParamsName = "";
                    let paramsNameNumber = params.length;
                    let provideNumber = 6;  //一行显示几个字
                    let rowNumber = Math.ceil(paramsNameNumber / provideNumber);
                    if (paramsNameNumber > provideNumber) {
                        for (let p = 0; p < rowNumber; p++) {
                            let tempStr = "";
                            let start = p * provideNumber;
                            let end = start + provideNumber;
                            if (p == rowNumber - 1) {
                                tempStr = params.substring(start, paramsNameNumber);
                            } else {
                                tempStr = params.substring(start, end) + "\n";
                            }
                            newParamsName += tempStr;
                        }
    
                    } else {
                        newParamsName = params;
                    }
                    return newParamsName

                }
            },
        },
        
        backgroundColor:"black",
        series: [{
            name: 'Budget vs spending',
            type: 'radar',
            data: [{
                    value: [4200, 3000, 20000, 35000, 50000, 18000],
                    name: 'Allocated Budget'
                },
                {
                    value: [5000, 14000, 28000, 26000, 42000, 21000],
                    name: 'Actual Spending'
                }
            ]
        }]
    };
}

 写到这里你以为写完了吗?

其实还差一步,可能你配置完你会发现 没有报错但是不显示,是什么原因造成的呢?

那么  在wxml 你可以打开控制台 然后点击一下你的echarts 你会发现 它没有宽度和高度 那么这个时候就是我说的 拿个盒子包起来的作用了 在wxss以下的代码

.container{
    width: 750rpx;
    height: 1200rpx;
}

ec-canvas{
    width: 100%;
    height: 100%;
}

 我的class类名声明如下 根据个人的配置去配置 那么 接下来接配置完成啦

关于echarts再微信小程序的使用_第6张图片

自己去试试吧

 

 

你可能感兴趣的:(js,微信小程序)