特点

折线图更多的使用来呈现数据随时间的『变化趋势』

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <script src="../js/echarts.js"></script>
  9. </head>
  10. <body>
  11. <div id="main" style="width: 600px;height:400px;"></div>
  12. <script>
  13. var myChart = echarts.init(document.getElementById('main'))
  14. var xDataArr = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
  15. var yDataArr = [3000, 2800, 900, 1000, 800, 700, 1400, 1300, 900, 1000, 800, 600]
  16. var option = {
  17. xAxis: { type: 'category', data: xDataArr }, yAxis: { type: 'value' }, series: [{
  18. type: 'line', data: yDataArr,
  19. //最大最小值
  20. markPoint: {
  21. data: [{ type: 'max', name: '最大值' }, { type: 'min', name: '最小值' }]
  22. },
  23. //平均值
  24. markLine: { data: [{ type: 'average', name: '平均值' }] },
  25. //标注区间
  26. markArea: { data: [[{ xAxis: '1月' }, { xAxis: '2月' }], [{ xAxis: '7月' }, { xAxis: '8月' }]] },
  27. //是否平滑线条,true为是
  28. smooth: true,
  29. //设置线条样式
  30. lineStyle: { color: 'green', type: 'dashed' }, // 可选值还有 dotted solid
  31. //填充风格
  32. areaStyle: { color: 'pink' },
  33. // 紧挨边缘 boundaryGap boundaryGap 是设置给 x 轴的, 让起点从 x 轴的0坐标开始
  34. boundaryGap: false
  35. },]
  36. }
  37. myChart.setOption(option)
  38. </script>
  39. </body>
  40. </html>

image.png

问题

缩放, 脱离0值比例 如果每一组数据之间相差较少, 且都比0大很多, 那么有可能会出现这种情况

image.png
image.png

解决办法

这显然不是我们想要的效果, 因此可以配置上 scale , 让其摆脱0值比例 scale 配置 scale 应该配置给 y 轴

  1. yAxis: { type: 'value',scale: true }

image.png

堆叠图

堆叠图指的是, 同个类目轴上系列配置相同的 stack 值后,后一个系列的值会在前一个系列的值上相加 如果在一个图表中有两个或者多个折线图, 在没有使用堆叠配置的时候, 效果如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <script src="../js/echarts.js"></script>
  9. </head>
  10. <body>
  11. <div id="main" style="width: 600px;height:400px;"></div>
  12. <script>
  13. var myChart = echarts.init(document.getElementById('main'))
  14. var xDataArr = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
  15. var yDataArr1 = [120, 132, 101, 134, 90, 230, 210]
  16. var yDataArr2 = [20, 82, 191, 94, 290, 330, 310]
  17. var option = { xAxis: { type: 'category', data: xDataArr }, yAxis: { type: 'value', scale: true }, series: [{ type: 'line', data: yDataArr1 }, { type: 'line', data: yDataArr2 }] }
  18. myChart.setOption(option)
  19. </script>
  20. </body>
  21. </html>

image.png

蓝色这条线的y轴起点, 不再是y轴, 而是红色这条线对应的点. 所以相当于蓝色是在红色这条线的基 础之上进行绘制. 基于前一个图表进行堆叠

series中的每一个对象配置相同的stack值, 这个all可以任意写

  1. series: [{ type: 'line', data: yDataArr1, stack: 'all'}, { type: 'line', data: yDataArr2 , stack: 'all'}]