vue echarts实现3D效果柱状图

这篇具有很好参考价值的文章主要介绍了vue echarts实现3D效果柱状图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在vue2项目里面,研究了哈,这里记录下eacharts 实现3D效果柱状图
在main.js引入eacharts

import echarts from 'echarts'
Vue.prototype.$echarts = echarts
<template>
  <scale-card title="月度故障业务平均恢复时长" iconname="el-icon-data-analysis">
    <div class="chart-container">
      <div ref="chart" class="chart" />
    </div>
  </scale-card>
</template>
export default{
	data() {
      return {
        statusChart: null
      }
    },
    mounted() {
      this.initChart()
      // 根据窗口变化自动调节图表大小
      window.addEventListener('resize', this.changeSize)
    },
    beforeDestroy() {
      console.log('销毁')
      this.statusChart && this.statusChart.dispose()
      window.removeEventListener('resize', this.changeSize)
    },
    methods:{
	    // 自适应宽高
	    changeSize() {
	        this.statusChart.resize()
	    }
	    initChart() {
	      	this.statusChart = this.$echarts.init(this.$refs.chart)
	        var colorArr = ['#0C628C', '#3887D5', '#2570BB']
	        var color = {
	          type: 'linear',
	          x: 0,
	          x2: 1,
	          y: 0,
	          y2: 0,
	          colorStops: [
	            {
	              offset: 0,
	              color: colorArr[0]
	            },
	            {
	              offset: 0.5,
	              color: colorArr[0]
	            },
	            {
	              offset: 0.5,
	              color: colorArr[1]
	            },
	            {
	              offset: 1,
	              color: colorArr[1]
	            }
	          ]
	        }
	        var barWidth = 30
	        const xAxisData = ['区域1', '区域2', '区域3', '区域4', '区域5', '区域6', '区域7', '区域8', '区域9']
	        var data1 = [6, 7, 3, 11, 33, 38, 22, 55, 66]
	        var bottomData = [1, 1, 1, 1, 1, 1, 1, 1, 1]
	        var topData = [100, 100, 100, 100, 100, 100, 100, 100, 100]
	        // 指定图表的配置项和数据
	        const option = {
	          backgroundColor: 'rgba(0,0,0,0)',
	          tooltip: {
	            trigger: 'axis',
	            formatter: function(params) {
	              var str = params[0].name + ':'
	              params.filter(function(item) {
	                if (item.componentSubType == 'bar') {
	                  str += '<br/>' + item.seriesName + ':' + item.value
	                }
	              })
	              return str
	            }
	          },
	          grid: {
	            x: '7%',
	            x2: '0%',
	            y: '15%',
	            y2: '15%'
	          },
	          xAxis: {
	            type: 'category',
	            data: xAxisData,
	            // 更改坐标轴颜色
	            axisLine: {
	              lineStyle: {
	                color: this.fontColorX
	              },
	              onZero: false
	            },
	            // x轴的字体样式
	            axisLabel: {
	              interval: 0,
	              textStyle: {
	                color: this.fontColorX, // 更改坐标轴文字颜色
	                fontSize: 14, // 更改坐标轴文字大小
	                fontFamily: 'MicrosoftYaHei'
	              },
	              // X轴lable的处理函数,如果x轴的lable有空格,比如:['AM点检 异常', 'PM巡检 异常', 'PM保养 异常'],这里会以空格为分割,显示两行
	              formatter: function(params) {
	                return params.split(' ').join('\n')
	                //                console.log(' formatter',params);
	              }
	            }
	
	          },
	          yAxis: {
	            type: 'value',
	            axisLabel: {
	              formatter: '{value}',
	              textStyle: {
	                color: this.fontColorY, // 更改坐标轴文字颜色
	                fontSize: 12, // 更改坐标轴文字大小
	                fontFamily: 'MicrosoftYaHei'
	              }
	            },
	            // 更改坐标轴颜色
	            axisLine: {
	              lineStyle: {
	                color: '#657CA8'
	              }
	            },
	            // 网格线
	            splitLine: {
	              // 网格线
	              lineStyle: {
	                type: 'solid',
	                with: 0.5,
	                color: this.borderColor
	              }
	            }
	          },
	          series: [
	            // 数据低下的圆片
	            {
	              name: '',
	              type: 'pictorialBar',
	              symbolOffset: ['0%', '50%'],
	              symbolSize: [barWidth - 4, (10 * (barWidth - 4)) / barWidth],
	              z: 12,
	              symbol: 'diamond',
	              itemStyle: {
	                opacity: 1,
	                color: color
	              // color: 'transparent'
	              },
	              data: bottomData
	            },
	            // 数据的柱状图
	            {
	              name: '',
	              type: 'bar',
	              barWidth: barWidth,
	              itemStyle: {
	                // lenged文本
	                opacity: 1, // 这个是 透明度
	                color: color
	              },
	
	              data: data1
	            },
	            // 替代柱状图 默认不显示颜色,是最下方柱图(邮件营销)的value值 - 20
	            {
	              type: 'bar',
	              symbol: 'diamond',
	              barWidth: barWidth + 2,
	              itemStyle: {
	                color: 'transparent'
	              },
	              data: data1
	            },
	            // 数据顶部的样式
	            {
	              name: '',
	              type: 'pictorialBar',
	              symbol: 'diamond',
	              symbolOffset: ['0%', '-50%'],
	              symbolSize: [barWidth, 10],
	              z: 12,
	              itemStyle: {
	                normal: {
	                  opacity: 1,
	                  color: colorArr[2],
	                  label: {
	                    show: true, // 开启显示
	                    position: 'top', // 在上方显示
	                    textStyle: {
	                      // 数值样式
	                      color: '#FFFFFF',
	                      fontSize: 12,
	                      top: 50
	                    }
	                  }
	                }
	              },
	              symbolPosition: 'end',
	              data: data1
	            },
	
	            // 阴影的顶部
	            {
	              name: '', // 头部
	              type: 'pictorialBar',
	              symbol: 'diamond',
	              symbolOffset: ['0%', '-50%'],
	              symbolSize: [barWidth, 10],
	              z: 12,
	              symbolPosition: 'end',
	              itemStyle: {
	                color: 'rgba(18, 47, 133,0.5)',
	                opacity: 0.3,
	                borderWidth: 1,
	                borderColor: 'rgba(18, 47, 133,1)'
	              },
	              data: topData
	            },
	            // 后面的背景
	            {
	              name: '2019',
	              type: 'bar',
	              barWidth: barWidth,
	              barGap: '-100%',
	              z: 0,
	              itemStyle: {
	                color: 'rgba(18, 47, 133,0.3)'
	              },
	
	              data: topData
	            }
	          ]
	        }
	        this.statusChart.setOption(option)
	    },
    }
}

展示效果:大屏demo
vue2 3d柱状图,echarts,3d,javascript文章来源地址https://www.toymoban.com/news/detail-606225.html

到了这里,关于vue echarts实现3D效果柱状图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • echarts看板效果图:流光折线图、3d柱状图、3d饼图、3d地图

    现在展厅的大看板是越花里胡哨越好,不过真的挺难做的。好在可以百度找到一些大神的作品进行参考。 下面的内容都是基于 echarts 5.3.3 和 vue3 。另外demo都是参考别人的案例。 效果图 代码 本质上是两条线组合在一起的,一条是静态的线条,一条是动态的线条。相关属性都

    2024年02月06日
    浏览(47)
  • echarts 实现 3d 柱状图

    实现要求 能够调整大小 实现3d效果,可以改变颜色 前置环境 效果 调整大小和颜色 代码 baseCharts.vue 使用 10.12 更新 效果 代码 使用

    2024年02月11日
    浏览(47)
  • echarts实现3D柱状图(视觉层面)和3D饼图

    原理: 立体图形从一个方向只能看到三个面,于是我们通过echarts图表实现 顶部,明面,和暗面。 效果图如下: 需要四份数据, 两个柱子的数据+X轴数据+颜色数据, 通过 setData 和 setColor 生成需要的数据,横向柱状图同理,参照代码中注释。 以下是完整案例代码: 3D饼图没

    2024年02月16日
    浏览(40)
  • vue2+three.js实现类似VR、3D全景效果

    效果图: 俩图标是我自己加的前进后退按钮,也是百度了好久,再加上GPT的帮助,才给搞出来。因为需求急,都不看官方文档,百度到一个能跑的demo之后改吧改吧,就先用着了。 下面是代码: 这里 代码有很多用不到的地方和需要优化的地方,我是来不及改了,就先这样吧

    2024年02月15日
    浏览(54)
  • Vue2 Echarts 3D饼图

    2024年01月19日
    浏览(43)
  • echarts实现3d柱状图的两种方式

    看了不少关于3d柱状图的案例,发现做3d柱状图 常用的两种方式就是 自定义图形和象型柱图, 两种实现方式效果如下: 方法1: echarts.graphic.extendShape 自定义图形 echarts自定义图形的详细用法点这里, 官网点这里, 图中第一个3d柱状图我参考的案例在这里, 看了很多 echarts这种3d案例,

    2024年02月01日
    浏览(51)
  • vue2+three.js+blender(实现3d 模型引入并可点击效果)

    2023.9.13今天我学习了如何把3d建模里面的模型引入到vue中,并可以实现拖动,点击的效果: 首先安装: npm install three 相关代码如下:  如果没有图片可以去 Three.js--》建模软件如何加载外部3D模型?_threejs加载3d模型_亦世凡华、的博客-CSDN博客

    2024年02月03日
    浏览(64)
  • JavaScript、Vue实现大数据大屏展示3D旋转动画效果

    最近在写一些数据大屏的时候客户需要做个3D旋转动效的效果,简单整理之后写了一个小demo做下记录,先看一下效果: 当点击next的时候,整个模块旋转切换到下个菜单,点击prev的时候也可以切换到上一个菜单效果。 首先我们先构建一个大体的dom结构,如下: 编写基本的css样

    2024年02月11日
    浏览(40)
  • 用echarts在vue2中实现3d饼图

    先看效果,再看文章: 3d的图不仅用到echarts,还用到了echarts-gl,因此都需要安装一下哦~ 直接复制粘贴吧,省事 1、修改3d饼图大小,在大概244行的位置,grid3D的对象里面,修改distance属性,即可调整 值越小,图越大    2、修改3d饼图视角高度,在大概161行的位置,修改函数

    2024年02月07日
    浏览(40)
  • vue下echarts的地图配置(3d悬浮效果)

    一.实现效果 图片上面的水印是公司软件自带的 二.html块代码  三.主代码  四.配置数据 toolTip配置js文件如下  geo配置数据如下:   series配置如下: 五.其他配置数据说明 1. zoomSize设置值为1.4 2.series数据格式为:[{name:\\\'四川省\\\',amount:\\\'123456\\\'},{name:\\\'海南省,amount:\\\'456\\\'}] 3.加上地图

    2024年02月11日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包