echarts横向柱状图高度随动态数据长度自适应

一.需求
echarts横向柱状图的容器高度,随后端返回的动态数据的长度自适应,瀑布流式展示

二.分析
难点:echarts的容器高度若是写死的话,后端返回数据过多时,则呈现的效果是容器高度不变,内容会被压缩的很小,但是会展示全;如果不给容器设置高度的话,他会默认一个高度,后端返回数据过多时,则呈现的效果是容器高度为默认高度,内容展示不全,容器装不下的、剩下的内容会被遮挡看不见

三.关键性代码和注释如下

<div id="main2" style="width:100%"></div>
//注意宽度不写,echarts不会展示;高度不可写死,否则不能实现容器的高度自适应了
drawChart2(){
      var option2={
      //这里写你需要对应的配置项去控制这个echarts的样式与数据源
      }
      let myChart = this.$echarts.init(document.getElementById('main2'))
      //获取到这个echarts图表的节点,并初始化
      myChart.setOption(option2);
      //将该echarts用之前配置好的option2的配置项进行渲染
      var autoHeight = option2.yAxis.data.length* 50 + 150
      //获取option2配置项中y轴的数据源的长度*每个柱状你想设定的高度+150的预留高度
      myChart.getDom().style.height = autoHeight + "px"
      //echarts有个getDom()的方法可以设置获取 ECharts 实例容器的 dom 节点,给节点分别设置高度
      myChart.getDom().childNodes[0].style.height = autoHeight + "px"
      myChart.getDom().childNodes[0].childNodes[0].setAttribute("height",autoHeight)
      myChart.getDom().childNodes[0].childNodes[0].style.height = autoHeight + "px"
      //根据窗口的大小变动图表
      myChart.resize()
 }
根据引用中的代码和注释,要实现echarts横向柱状图的柱高度自适应,可以按照以下步骤进行操作: 1. 在HTML代码中,创建一个div元素作为echarts的容器,并设置其宽度为100%: ``` <div id="main2" style="width:100%"></div> ``` 2. 在JavaScript代码中,使用echarts的API初始化图表,并设置图表的配置项option2: ``` let myChart = this.$echarts.init(document.getElementById('main2')); myChart.setOption(option2); ``` 3. 根据数据源的长度和每个柱状的高度,计算容器的自适应高度: ``` var autoHeight = option2.yAxis.data.length * 50 + 150; ``` 4. 使用echarts的getDom()方法获取图表的节点,并分别设置节点的高度: ``` myChart.getDom().style.height = autoHeight + "px"; myChart.getDom().childNodes<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [echarts横向柱状图](https://download.csdn.net/download/qq_42396791/11856336)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [echarts横向柱状图高度动态数据长度自适应](https://blog.csdn.net/weixin_54351962/article/details/124297111)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [echarts横向柱状图设置可变高度](https://blog.csdn.net/qq_56489154/article/details/128821365)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值