当前位置:   article > 正文

小程序在使用echarts组件时出现的问题_微信小程序echarts报错

微信小程序echarts报错

作为一个专业的图表绘制工具,echarts相对来说在交互和功能上更领先一些,但是引入后的代码大小会暴增600-1M左右,对于小程序上传主包不超过2M的限制来说,就要考虑根据实际情况如何定制化进行JS文件的优化。

首先引入后的wxml

<ec-canvas id="" canvas-id="mychart-line" ec="{{ ec }}"></ec-canvas>

其次在ready中定义

 this.ecChart = this.selectComponent('#id');

之后在js文件中定义图表的数据options,例如:

  1. var option = {
  2. tooltip: {
  3. trigger: 'axis',
  4. axisPointer: { // 坐标轴指示器,坐标轴触发有效
  5. type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
  6. },
  7. confine: true
  8. },
  9. legend: {
  10. data: ['热度', '正面', '负面']
  11. },
  12. grid: {
  13. left: 20,
  14. right: 20,
  15. bottom: 15,
  16. top: 40,
  17. containLabel: true
  18. },
  19. xAxis: [{
  20. type: 'value',
  21. axisLine: {
  22. lineStyle: {
  23. color: '#999'
  24. }
  25. },
  26. axisLabel: {
  27. color: '#666'
  28. }
  29. }],
  30. yAxis: [{
  31. type: 'category',
  32. axisTick: {
  33. show: false
  34. },
  35. data: ['汽车之家', '今日头条', '百度贴吧', '一点资讯', '微信', '微博', '知乎'],
  36. axisLine: {
  37. lineStyle: {
  38. color: '#999'
  39. }
  40. },
  41. axisLabel: {
  42. color: '#666'
  43. }
  44. }],
  45. series: [{
  46. name: '热度',
  47. type: 'bar',
  48. label: {
  49. normal: {
  50. show: true,
  51. position: 'inside'
  52. }
  53. },
  54. data: [300, 270, 340, 344, 300, 320, 310],
  55. itemStyle: {
  56. // emphasis: {
  57. // color: '#37a2da'
  58. // }
  59. }
  60. },
  61. {
  62. name: '正面',
  63. type: 'bar',
  64. stack: '总量',
  65. label: {
  66. normal: {
  67. show: true
  68. }
  69. },
  70. data: [120, 102, 141, 174, 190, 250, 220],
  71. itemStyle: {
  72. // emphasis: {
  73. // color: '#32c5e9'
  74. // }
  75. }
  76. },
  77. {
  78. name: '负面',
  79. type: 'bar',
  80. stack: '总量',
  81. label: {
  82. normal: {
  83. show: true,
  84. position: 'left'
  85. }
  86. },
  87. data: [-20, -32, -21, -34, -90, -130, -110],
  88. itemStyle: {
  89. // emphasis: {
  90. // color: '#67e0e3'
  91. // }
  92. }
  93. }
  94. ]
  95. };

当然,数据可以设置成动态数据,从小程序的集合collection中获取,注意位置要放正确。

  1. function ecChart1(canvas, width, height, dpr) {
  2. const chart = echarts.init(canvas, null, {
  3. width: width,
  4. height: height,
  5. devicePixelRatio: dpr //加上这个参数可以让图表显示更清晰
  6. });
  7. canvas.setChart(chart);
  8. //这里获取集合数据

但是在曲线绘制过程中,出现一个小问题就是渐变区域areastyle的显示问题,在各种参数都正确的情况下,在小程序刚加载完毕后不能显示渐变效果,需要手势点击触碰一下才可以,这个问题尚未能找到解决方法。

示例代码:

  1. areaStyle: {
  2. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
  3. offset: 0,
  4. color: 'rgb(7,193,96,0.5)'
  5. },
  6. {
  7. offset: 0.2,
  8. color: 'rgb(7,193,96,0.2)'
  9. },
  10. {
  11. offset: 1,
  12. color: 'rgb(7,193,96,0.1)'
  13. }
  14. ]),
  15. },
  16. lineStyle: {
  17. width: 3,
  18. color: 'rgb(7,193,96)',
  19. },

如有遇到类似问题已经解决的朋友,欢迎评论指出。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/526609
推荐阅读
相关标签
  

闽ICP备14008679号