echarts图表横屏展示

一. 概述

项目环境:vue + vuex + echarts
实现图表的横屏效果。

二. 效果图

在这里插入图片描述
横屏效果
在这里插入图片描述

三. 方案
废弃方案:
  1. 在图表的外层添加一个div,添加css旋转属性,宽/高=100%,
  2. 设置图表的高=屏幕高,图表的高=屏幕宽

废弃方案的结果:效果同样能达到横屏效果,但是提示文本有问题,有些区域点击无法弹出提示文本,pass了这个写法。
也琢磨了一下为什么部分区域点击无效呢,由于图表外层div旋转了,没有覆盖整个屏幕,超出图表区域,点击无效。

有效方案:
  1. 图表的配置项设置成类似横屏效果的就可以了。
  2. 给图表标题,全屏打开/关闭按钮所在的区域设置旋转,动态调控旋转后图表的位置。
  3. echarts图例没办法旋转,如果需要图例的话,需要自己封装,参考第二步。

注意:步骤二中旋转后位置的计算,
顶部距离marginTop = 屏幕的高/2 - 需要旋转元素的高/2,
左侧距离marginLeft = 屏幕的宽 - 屏幕的高/2- 需要旋转元素的高/2,

步骤一:
// 设置提示旋转
 this.barFullOption.tooltip.extraCssText = 'transform: rotate(90deg)'
 // 横屏后y轴配置
 this.barFullOption.xAxis = {
   type: 'value',
   position: 'top',
   nameRotate: -90,
   axisLabel: {
     rotate: 90
   },
   scale: true,
   data: [],
   nameTextStyle: {
     color: '#333'
   },
   splitLine: {
     lineStyle: {
       // 使用深浅的间隔色
       color: ['#ddd'],
       type: 'dashed'
     }
   }
 }
 // 横屏后x轴样式配置
 this.barFullOption.yAxis = {
   type: 'category',
   inverse: true,
   axisLabel: {
     rotate: -90,
     margin: 15
   },
   data: []
 }
 this.barFullOption.yAxis.data = xData
步骤二:
 <div class="chart-rorate"
   :style="{width:fullHeight,marginTop:topSpace + 'px',marginLeft:leftSpace+'px'}">
    <p class="chart-title">
        {{ title }}
        <img
            @click="fullScreenOpenOrClose(false)"
            class="screen-full-img"
            :src="require('@/assets/img/icon_close.png')">
    </p>
</div>
 computed: {
    fullWidth () { // 屏幕宽
      return window.innerWidth + 'px'
    },
    fullHeight () { // 屏幕高
      return window.innerHeight + 'px'
    },
    topSpace () { // 旋转后距离顶部距离
      return Math.round(Number(replaceStr(this.fullHeight, 'px', '')) / 2) - Math.round(57 / 2)
    },
    leftSpace () { //旋转后距离左侧距离
      return Number(replaceStr(this.fullWidth, 'px', '')) - Math.round(Number(replaceStr(this.fullHeight, 'px', '')) / 2) - Math.round(57 / 2)
    }
  },
四. 代码地址

git@github.com:xuweixiao/vue-calendar.git

根据提供的引用内容来看,要创建一个echarts柱状图大屏,可以按照以下步骤进行操作: 1. 设置效果:要创建复杂的效果,需要单独设置tooltip和grid等参数。tooltip的trigger设置为'axis',axisPointer设置为'type: 'shadow''。grid的left、right、bottom、top等属性可以根据需求进行调整。 2. 设置X轴:隐藏坐标轴,可以通过设置xAxis的show属性为false来隐藏。同时,可以设置boundaryGap属性来调整X轴的间距。 3. 设置Y轴:横向柱状图需要将yAxis的type属性设置为'category',同时也可以设置show属性为false来隐藏坐标轴。 4. 设置渐变色:可以通过设置series中的color参数来实现渐变色效果。可以使用echarts.graphic.LinearGradient来定义渐变色的起始点、终点和颜色。同时还可以设置label的position、formatter和color等属性来显示柱状图上的数值。 5. 最后,根据以上设置,使用echarts的setOption方法将上述配置应用到图表中。 通过以上步骤,您可以创建一个echarts柱状图大屏。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [echarts——实现大屏数据展示——基础积累(超详细)](https://blog.csdn.net/yehaocheng520/article/details/125458531)[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: 100%"] [ .reference_list ]
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值