Echart+Vue制作3d柱状图

Echart+Vue制作3d柱状图

先看一下效果图:
在这里插入图片描述
我是根据Echart官网上的实例稍加改变的:Echarts官网实例地址
下面直接上代码:
HTML部分:

     <span class="spanTitle">软件使用排行</span>
     <div id="softwareRange" style="width:100%;height:400px">
     </div>

JS代码:

   softwareRangeInit(xdata,ydata,zdata){
      let nc = document.getElementById("softwareRange");
      var myChart = echarts.init(nc);
      myChart.setOption({
        tooltip: {},
        visualMap: {   //颜色图例
        max: 100,    //允许显示的最大值
        inRange: {
            color: ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026']
        }
     },
     xAxis3D: {
        type: 'category',
        name:'软件名称',
        data: xdata
     },
     yAxis3D: {
        type: 'category',
        data: ydata
     },
     zAxis3D: {
        type: 'value',
        name:'使用率',
        axisLabel: {
            show: true,
            interval: 'auto',
            formatter: '{value}%'
        },
     },
     grid3D: {
        boxWidth: 300,
        boxDepth: 150,
        viewControl: {
          // beta:0,   //调整倾斜角度
            //  projection: 'orthographic'
        },
        light: {
            main: {
                intensity: 1.2,
                shadow: true
            },
            ambient: {
                intensity: 0.3
            }
        }
      },
      series: [{
        type: 'bar3D',
        name:'软件使用排行',
        data: zdata.map(function (item) {
            return {
                value: [item[0], item[1], item[2]],
            }
        }),
        shading: 'lambert',
        label: {
            textStyle: {
                fontSize: 16,
                borderWidth: 1
            }
        },
        emphasis: {
            label: {
                textStyle: {
                    fontSize: 20,
                    color: '#900'
                }
            },
            itemStyle: {
                color: '#900'
            }
        }
      }]
      })
    },

注意X轴、Y轴、Z轴的数据格式,我这边是在别的方法里处理过了,官网上的数据格式是:

var hours = ['12a', '1a', '2a', '3a', '4a', '5a', '6a', '7a', '8a', '9a','10a','11a', '12p', '1p', '2p', '3p', '4p', '5p''6p', '7p', '8p', '9p', '10p', '11p'];
var days = ['Saturday', 'Friday', 'Thursday', 'Wednesday', 'Tuesday', 'Monday', 'Sunday'];

var data = [[0,0,5],[0,1,1],[0,2,0],[0,3,0],[0,4,0],[0,5,0],[0,6,0],[0,7,0],[0,8,0],[0,9,0],[0,10,0],[0,11,2],[0,12,4],[0,13,1],[0,14,1],[0,15,3],[0,16,4],[0,17,6],[0,18,4],[0,19,4],[0,20,3],[0,21,3],[0,22,2],[0,23,5],[1,0,7],[1,1,0],[1,2,0],[1,3,0],[1,4,0],[1,5,0],[1,6,0],[1,7,0],[1,8,0],[1,9,0],[1,10,5],[1,11,2],[1,12,2],[1,13,6],[1,14,9],[1,15,11],[1,16,6],[1,17,7],[1,18,8],[1,19,12],[1,20,5],[1,21,5],[1,22,7],[1,23,2],[2,0,1],[2,1,1],[2,2,0],[2,3,0],[2,4,0],[2,5,0],[2,6,0],[2,7,0],[2,8,0],[2,9,0],[2,10,3],[2,11,2],[2,12,1],[2,13,9],[2,14,8],[2,15,10],[2,16,6],[2,17,5],[2,18,5],[2,19,5],[2,20,7],[2,21,4],[2,22,2],[2,23,4],[3,0,7],[3,1,3],[3,2,0],[3,3,0],[3,4,0],[3,5,0],[3,6,0],[3,7,0],[3,8,1],[3,9,0],[3,10,5],[3,11,4],[3,12,7],[3,13,14],[3,14,13],[3,15,12],[3,16,9],[3,17,5],[3,18,5],[3,19,10],[3,20,6],[3,21,4],[3,22,4],[3,23,1],[4,0,1],[4,1,3],[4,2,0],[4,3,0],[4,4,0],[4,5,1],[4,6,0],[4,7,0],[4,8,0],[4,9,2],[4,10,4],[4,11,4],[4,12,2],[4,13,4],[4,14,4],[4,15,14],[4,16,12],[4,17,1],[4,18,8],[4,19,5],[4,20,3],[4,21,7],[4,22,3],[4,23,0],[5,0,2],[5,1,1],[5,2,0],[5,3,3],[5,4,0],[5,5,0],[5,6,0],[5,7,0],[5,8,2],[5,9,0],[5,10,4],[5,11,1],[5,12,5],[5,13,10],[5,14,5],[5,15,7],[5,16,11],[5,17,6],[5,18,0],[5,19,5],[5,20,3],[5,21,4],[5,22,2],[5,23,0],[6,0,1],[6,1,0],[6,2,0],[6,3,0],[6,4,0],[6,5,0],[6,6,0],[6,7,0],[6,8,0],[6,9,0],[6,10,1],[6,11,0],[6,12,2],[6,13,1],[6,14,3],[6,15,4],[6,16,0],[6,17,0],[6,18,0],[6,19,0],[6,20,1],[6,21,2],[6,22,2],[6,23,6]];

hours是X轴,days是Y轴,这都很好理解,Z轴的表示方法:[0,0,5]第一个0表示Y轴下标,第二个0表示X轴下标,5表示Z轴的值,处理时需要注意一下。

Vue.js中使用ECharts设计一个分页柱状图,首先需要确保你已经安装了VueECharts库。以下是一个简单的步骤概述: 1. **项目初始化**: 使用Vue CLI创建一个新的项目,如果还没有安装,运行`npm install -g @vue/cli`。 2. **引入依赖**: 在`main.js`或`.vue`文件中引入ECharts库,可以使用cdn或本地打包: ```javascript import ECharts from 'echarts'; Vue.prototype.$echarts = ECharts; ``` 3. **组件化设计**: 创建一个名为`PaginationBarChart.vue`的新组件,负责渲染柱状图,并包含分页功能。你可以使用v-for遍历数据并显示对应的数据条形。 ```html <template> <div :style="{ height: '400px', width: '100%' }"> <div v-for="(item, index) in pageData" :key="index"> <div :class="['bar', { active: item === currentPage }]" :style="{ height: `${item}%`, background: itemColor(item) }"></div> </div> <el-pagination :total="totalPages" :current-page="currentPage" @current-change="handleCurrentChange" /> </div> </template> <script> export default { data() { return { currentPage: 1, totalPages: 0, pageData: [], // 根据实际需求填充每页的数据 itemColor: (page) => `hsl(${Math.random() * 360}, 50%, ${page / totalPages * 100}%)`, // 随机颜色 }; }, methods: { handleCurrentChange(page) { this.currentPage = page; // 更新柱状图数据,这里假设可以通过一个API获取分页数据 this.updateChartData(); }, updateChartData() { // 调用获取数据的方法,根据分页参数获取对应的数据 // 这里只是简单示例,你需要连接到实际数据源 const pageData = ...; // 获取当前页的数据 this.pageData = pageData; this.totalPages = pageData.length; }, }, }; </script> ``` 4. **样式设置**: 在`styles.css`或`App.vue`中添加一些基本样式,比如柱状图的样式以及分页器的样式。 记得根据实际情况替换数据获取部分,这只是一个基础的分页柱状图模板。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值