Echarts3实例 叠加柱状图

太过爱你忘了你带给我的痛 2021-09-17 10:00 487阅读 0赞

前言

  1. 堆叠柱状图本身是不难实现的,在项目上需求遇到在柱状图上边,添加统计label

实现效果

在这里插入图片描述

实现代码

  1. 思路:
  2. 添加新的series放在最上层,让series隐藏,并设置label显示统计label
  3. tooltip隐藏最后一列
  4. <!DOCTYPE html>
  5. <html lang="en">
  6. <head>
  7. <meta charset="UTF-8">
  8. <title>Title</title>
  9. <style>
  10. html,body{
  11. height: 100%;
  12. }
  13. *{
  14. margin: 0px;
  15. height: 0px;
  16. }
  17. #chartDiv{
  18. width: 650px;
  19. height: 370px;
  20. border: 1px solid red;
  21. }
  22. </style>
  23. <script src="js/echarts.min.js"></script>
  24. </head>
  25. <body>
  26. <div id="chartDiv"></div>
  27. <script>
  28. var chartDiv = echarts.init(document.getElementById('chartDiv'));
  29. var option = option = {
  30. title:{
  31. text:"带统计的堆叠柱状图"
  32. },
  33. legend: {
  34. data:['百度','谷歌','必应','其他']
  35. },
  36. tooltip : {//过滤掉统计的series
  37. trigger: 'axis',
  38. axisPointer : { // 坐标轴指示器,坐标轴触发有效
  39. type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
  40. },
  41. formatter: function(params){
  42. var res=params[0].name+"<br/>";
  43. for(let i=0;i<params.length-1;i++){
  44. res+=params[i].seriesName+":"+params[i].value+"<br/>"
  45. }
  46. return res;
  47. }
  48. },
  49. grid: {
  50. left: '3%',
  51. right: '4%',
  52. bottom: '3%',
  53. containLabel: true
  54. },
  55. xAxis : [
  56. {
  57. type : 'category',
  58. data : ['周一','周二','周三','周四','周五','周六','周日']
  59. }
  60. ],
  61. yAxis : [
  62. {
  63. type : 'value'
  64. }
  65. ],
  66. series : [
  67. {
  68. name:'百度',
  69. type:'bar',
  70. barWidth : 35,
  71. stack: '搜索引擎',
  72. data:[620, 732, 701, 734, 1090, 1130, 1120]
  73. },
  74. {
  75. name:'谷歌',
  76. type:'bar',
  77. stack: '搜索引擎',
  78. data:[120, 132, 101, 134, 290, 230, 220]
  79. },
  80. {
  81. name:'必应',
  82. type:'bar',
  83. stack: '搜索引擎',
  84. data:[60, 72, 71, 74, 190, 130, 110]
  85. },
  86. {
  87. name:'其他',
  88. type:'bar',
  89. stack: '搜索引擎',
  90. data:[62, 82, 91, 84, 109, 110, 120]
  91. },
  92. {
  93. name:'统计',
  94. type:'bar',
  95. stack: '搜索引擎',
  96. data:[0.3, 0.6, 0.9, 0.84, 0.36, 0.11, 0.66],//模拟数据
  97. label: {
  98. normal: {
  99. offset:[0, -10],//左右,上下
  100. show: true,
  101. position: 'insideLeft',
  102. formatter:function(params){
  103. if(params.data==0){
  104. return "0%";
  105. }else{
  106. return params.data*100+"%";
  107. }
  108. },
  109. fontSize:14,
  110. fontWeight:'bold',
  111. textStyle:{ color:'#199ED8' }
  112. }
  113. },
  114. itemStyle:{
  115. normal:{
  116. color:'rgba(128, 128, 128, 0)'
  117. }
  118. },
  119. }
  120. ]
  121. };
  122. chartDiv.setOption(option);
  123. </script>
  124. </body>
  125. </html>

发表评论

表情:
评论列表 (有 0 条评论,487人围观)

还没有评论,来说两句吧...

相关阅读