使用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在小程序中使用遇到的问题,下一篇总结一下小程序遇到的一些兼容性问题。