小程序使用echarts总结

使用echarts图表Android手机字体会缩小

我碰到的情况是x,y轴字体,title字体,还有label字体会变小,解决方法是加入rich : {}

title : {//标题缩小
  textStyle : {
   fontSize: 10,
   rich : {}
  }
},
yAxis: {//y轴刻度缩小
  axisLabel: {
    fontsize: 12,
    rich: {},  
 },
}

series: [{
  label : {//数据label缩小情况
    normal: {
      fontSize: 10,
      color: '#000',
      rich: {},
    }
  }
}]

2.还有一点可能是因为你的图太大了,画布的宽高没有那么大,所以会被整体缩小,也有可能会超出画布。所以还需要检查一下宽高
3。可能是下的echarts包不对,可以重新更新一下包,当时我下的包死活定义不了bar,找了好久才发现是包没有下好。。。

ios端和Android端不会显示tooltip

小程序端暂不支持tooptip,所以在虚拟机上点击时会出现,真机调试的时候不会出现,我的解决方法是和产品协商后将数据以label形式全部展现出来,因为数据量不大,如果数据量大的话需要自己写一个cover-view,这个方法没有用过所以不多说,可以查一下,我看了一下一大堆,等有时间还是自己写一写吧。

Android端圆环图中间空白处被填充

这个问题可能存在两种原因,一个是数据存在0%的情况,这个时候需要将这个数据筛掉,可以让后端筛,如果后端懒得弄就在show属性那里写一个回调判断如果为0就return。这里我就不写代码了(懒是原罪)。还有一个解决方法是在series中加入silent: true属性。还有一个是官方说echarts目前用的canvas是旧的canvas,会有兼容性问题,让看这个https://github.com/ecomfe/echarts-for-weixin/pull/590

实现折线图实线与虚线结合使用

使用场景是根据已知成绩来预测出未来的成绩趋势,已知成绩使用实线,预测成绩使用虚线显示。

series : [{
  name: item,
        type: 'line',
        smooth: false,
        data: data.subject_data//实线的数据
},{
  name: item,
        type: 'line',
        tooltip: {
          show: false
        },
        smooth: false,
        itemStyle: {
          normal: {
            lineStyle: {
              width: 2,
              type: 'dotted' //'dotted'虚线 'solid'实线
            }
          }
        },
        data: data.user_prediction_score,//虚线的数据
}]

后端返回的数据结构为

//实线部分
数学: [87, 78, 89, 68, 79]
//虚线部分
数学: ["", "", "", "", 79, 80]

注意的是虚线的成绩是最后一次真实成绩加上预测成绩,所以预测成绩的数据需要返回的是两个参数,刚开始我以为只需要一个预测成绩参数,其他都为空,结果显示出来只有一个点,并不能连上。

真机调式时加载过慢

切换到预览查看项目,

数据过多时,x,y轴最前端数据与最后端数据被隐藏问题

使用echarts折线图或者饼图时我遇到的这个问题,当数据过多或者过长的时候,最前端与最后端数据会被隐藏,解决方法:在对应x,y轴加入showMinLable和showMaxLabel,如果过长需要加上间隔interval属性,还有数据偏移角度rotate。如果超出画布则需要调整位置和画布的大小。

xAxis: [{
          axisLabel : {
            fontsize : 12,
            interval: 2,
            showMinLabel : true,
            showMaxLabel :true,
            rotate: 40,
            rich : {}
          }
        }],

echarts层级过高,自定义弹框被覆盖问题

解决方法一:
如果没有输出的情况,比如input之类的标签,单纯的知识图片和文字,就使用cover-view组件。
解决方法二:
如果你使用的弹框足够大,并且有遮罩层,可以弹出遮罩层的同时设置一个开关隐藏掉echarts图表。前提是弹框可以遮盖你的图表部分内容,也可以选择固定住弹框,不让页面滚动。
在网上看到还有其他方法,但没有测试,所以这里就不列举出来了。

后记

这些是我在近期开发中遇到的关于echarts在小程序中使用遇到的问题,下一篇总结一下小程序遇到的一些兼容性问题。

你可能感兴趣的:(小程序使用echarts总结)