在vue中实现 echarts柱状图 Y轴渐变色

本文详细介绍了如何在Vue项目中利用ECharts实现带有Y轴渐变色效果的柱状图,包括安装配置、图表创建及代码示例。

在vue中实现echarts柱状图渐变色

一:安装

1. 首先需要安装echarts依赖包

npm install echarts -S

2. 或者使用国内的淘宝镜像:

npm install -g cnpm --registry=https://registry.npm.taobao.org

二: 创建图表

全局引入

main.js


// 引入echarts
import echarts from 'echarts'

Vue.prototype.$echarts = echarts

Hello.vue

<div id="myChart" :style="{width: '300px', height: '300px'}"></div>
  export default {
    data(){
      return {}
    }, 
     mounted(){
        this.myChart() //函数调用
     },
     methods:{
        // 左上角柱状图
        myChart(){
          let myChart= this.$echarts.init(document.getElementById('myChart'));
          myChart.setOption({
            title: {
              text: '游客来源省份分析',//标题
              textStyle: {
                  color: '#2BFDA3'
              },
              x:'5%'
            },
            // 鼠标悬停显示的信息
            tooltip: {
              // 当tooltip的trigger为‘axis’时,显示多项数据内容数组
              trigger: 'axis',
              axisPointer: {  //默认为直线,可选为:'line' | 'shadow'
                type: 'shadow'  //阴影
              },
              formatter: "{b} <br> 合格率: {c}%"
            },
            // 图例,每个图标最多仅有一个图例
            /*legend: {
                data: [date]
            },*/
            // 网格图
            grid: {
              left: '6%',
              right: '6%',
              bottom: '2%',
              containLabel: true
            },
            // X轴
            xAxis: {
              type: 'value',
                //  修改柱状图背景网格线颜色
              splitLine:{
                show: true,
                lineStyle: { //X轴网格线型样式
                  color: "rgba(253,103,96,0.2)",
                  width: 1,
                  type: "soild"
                  }
                },
              boundaryGap: [0, 0.01],
              min: 0,	//x轴最小值
              max: 100,  //x轴最大值
              interval: 20,
              // 坐标轴的标签
              axisLabel: {
                formatter: '{value}',
                textStyle: {
                  color: '#fff',
                  fontWeight: '80'
                    }
                }
            },
            // Y轴
            yAxis: {
              type: 'category',
              data: ['新疆', '黑龙江', '广西', '江苏', '广东', '河北', '河南','上海','北京','西安'],
              axisLabel: {
                show: true,
                interval: 0,
                rotate: 0,
                margin: 10,
                inside: false,
                textStyle: {
                    color: '#fff',
                    fontWeight: '50'
                }
              }
            },
            // 内容数据
            series: [{
              type: 'bar',    //类型
              barWidth : 12,//修改柱状图的宽度
              label: {    //图形上的文本标签
                normal: {
                  show: true,
                  // formatter: '{c}',
                  formatter: function(v) {
                    var val = v.data;
                    if (val == 0) {
                        return '';
                    }
                    return val;
                  }
                }
              },
              // 柱状图形显示的颜色
              itemStyle: {
                normal: {
                  //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
                  color: function(params) {
                    var index = params.dataIndex;
                    var colorList = [
                      // 渐变颜色的色值和透明度
                      //透明度从0
                      ['rgba(15,235,255,0)','rgba(15,235,255,0)','rgba(15,235,255,0)','rgba(15,235,255,0)','rgba(15,235,255,0)','rgba(15,235,255,0)','rgba(15,235,255,0)','rgba(13,94,208,0)','rgba(255,155,15,0)','rgba(253,103,96,0)'],
                    //到透明度1 ,如果需要不同的颜色直接修改不同颜色即可
                      ['rgba(15,235,255,0.6)','rgba(15,235,255,0.6)','rgba(15,235,255,0.6)','rgba(15,235,255,0.6)','rgba(15,235,255,0.6)','rgba(15,235,255,0.6)','rgba(15,235,255,0.6)','rgba(13,94,208,0.6)','rgba(255,155,15,0.6)','rgba(253,103,96,0.6)']
                    ];
                    return {
                      colorStops: [{
                        offset: 0,   //颜色的开始位置
                        color: colorList[0][index] // 0% 处的颜色
                      },{
                        offset:0.6,    //颜色的结束位置
                        color: colorList[1][index] // 100% 处的颜色
                      }]
                    }
                  }
                }
              },
              data: [ 15, 20, 25, 30, 35,40,45,50,55,60]
            }]
          })
        },
       }
  }

最终结果

每个柱状图的渐变色

### 实现 ECharts 横向柱状图的渐变颜色 为了实现 ECharts 的横向柱状图并应用渐变颜色,可以按照以下方法配置图表选项。以下是详细的说明: #### 配置项解析 在 ECharts 中,可以通过 `visualMap` 或者直接定义系列的颜色属性来实现渐变效果。对于横向柱状图,需要调整坐标的方向,并通过 `itemStyle.color` 设置线性渐变。 #### 示例代码 下面是一个完整的 HTML 和 JavaScript 示例,用于创建带有渐变颜色的横向柱状图[^1]: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ECharts 横向柱状图 渐变</title> <!-- 引入 ECharts 库 --> <script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script> </head> <body> <div id="main" style="width: 600px; height: 400px;"></div> <script type="text/javascript"> var chartDom = document.getElementById('main'); var myChart = echarts.init(chartDom); var option = { tooltip: {}, xAxis: { // y 方向的数据 type: 'category', data: ['A', 'B', 'C', 'D', 'E'] }, yAxis: { // x 表示数值范围 type: 'value' }, series: [{ name: '示例数据', type: 'bar', barWidth: '50%', itemStyle: { color: new echarts.graphic.LinearGradient( // 定义渐变色 0, 0, 1, 0, [ { offset: 0, color: '#ff7f50' }, // 左侧颜色 { offset: 1, color: '#feea9b' } // 右侧颜色 ] ) }, data: [120, 200, 150, 80, 70] }] }; myChart.setOption(option); </script> </body> </html> ``` 上述代码实现了如下功能: - 使用 `LinearGradient` 方法定义了一个水平方向的渐变色。 - 将 X 设为类别型(即标签),Y 作为数值型,从而形成横向布局。 - 数据部分展示了五个类别的值及其对应的条形长度。 #### Vue 环境下的实现 如果是在 Vue 项目中集成该功能,则需安装 `vue-echarts` 组件库,并按其文档初始化实例[^2]。以下是一段基于 Vue 的简单实现: ```javascript <template> <v-chart :option="chartOption" /> </template> <script> import VChart from "vue-echarts"; import * as echarts from "echarts"; export default { components: { VChart }, data() { return { chartOption: { tooltip: {}, xAxis: { type: "category", data: ["A", "B", "C", "D", "E"], }, yAxis: { type: "value", }, series: [ { name: "示例数据", type: "bar", barWidth: "50%", itemStyle: { color: new echarts.graphic.LinearGradient( 0, 0, 1, 0, [{ offset: 0, color: "#ff7f50" }, { offset: 1, color: "#feea9b" }] ), }, data: [120, 200, 150, 80, 70], }, ], }, }; }, }; </script> ``` 以上代码片段适用于 Vue 项目的场景下快速构建带渐变色的横向柱状图。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值