使用echarts生成颜色渐变曲线图

news2024/11/17 13:38:24

效果图:
在这里插入图片描述

1、安装echarts

npm install echarts --save

2、全局注册组件

import * as echarts from 'echarts';
Vue.prototype.$echarts = echarts

3、结构
附: 计算显示日期的工具文件

/** 计算月份显示
 * @param {} 
 * @returns {}
 */
 export function getLastFiveMonths() {
    let dates = [];
    let currentDate = new Date();

    // 开始时就设置为前一个月
    currentDate.setMonth(currentDate.getMonth() - 1);

    for (let i = 0; i < 5; i++) {
        let month = currentDate.getMonth() + 1;  // getMonth 返回的月份从 0 开始,所以我们需要加 1
        let year = currentDate.getFullYear();

        // 根据你的需求,月份需要转化为中文
        let monthInChinese = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"][month-1];
        
        dates.push(monthInChinese + '\n' + year);  // 将新的日期添加到数组的开始

        currentDate.setMonth(currentDate.getMonth() - 1);  // 将日期设置为前一个月
    }

    return dates;
}
<template>
  <div class="EchartPractice">
    <div id="main"></div>
  </div>
</template>
import { getLastFiveMonths } from '@/utils/calculate'
// 组件数据
  data() {
    return {
      figure: [2297, 1297, 2297, 1297, 2297],
      colorType: [
        {
          offset: 0,
          color: '#b5c3ff' // 0% 处的颜色
        },
        {
          offset: 0.5,
          color: '#b5c3ff' // 0% 处的颜色
        },
        {
          offset: 1,
          color: '#bcd9fb' // 100% 处的颜色
        }
      ],
      tag: null
    }
  },
mounted() {
  this.drawChart()
},
drawChart() {
      console.log("返回的日期",getLastFiveMonths());
      let getLastFiveMonthsData=getLastFiveMonths()
      let that = this
      let myEchart = this.$echarts.init(document.getElementById('main'))
      let option = {
        xAxis: {
          data: getLastFiveMonthsData,
          axisLine: {
            lineStyle: {
              color: '#B5C3FF' // 这里设置x轴颜色
            }
          },
          axisTick: {
            show: true, //  是否显示
            inside: false, // 坐标轴刻度是否朝内,默认朝外(false)
            length: 5, // 坐标轴刻度的长度
            alignWithLabel: true, //刻度线与刻度标签是否对齐
            lineStyle: {
              color: '#B5C3FF', //刻度线颜色
              width: 2, // 刻度线粗细
              type: 'dashed' // 坐标轴线线的类型('solid'实线;'dashed'虚线;'dotted'点状)
            }
          },
          axisLabel: {
            color: '#1F359C',
            fontStyle: 'normal', // 文字字体的风格('normal'无样式;'italic'斜体;'oblique'倾斜字体)
            fontWeight: 'normal', // 文字字体的粗细('normal',无样式;'bold',加粗;'bolder',加粗的基础上再加粗;'lighter',变细;数字定义粗细也可以,取值范围100至700)
            fontSize: '13' // 文字字体大小
          }
        },
        yAxis: {
          show: false // 是否显示x轴
        },

        series: [
          {
            data: this.figure,
            type: 'line',
            //  formatter: '{c}次',

            symbolSize: 0, // 设置数据点大小为0,即不显示圆点
            itemStyle: {
              normal: {
                label: {
                  show: true,
                  position: 'top',
                  textStyle: {
                    color: '#1F359C'
                  },
                  //   添加单位
                  formatter: function (params) {
                    let type = null
                    if (that.message == 1) {
                      type = params.value + '秒'
                    } else {
                      type = params.value + '次'
                    }
                    return type
                  }
                }
              }
            },
            smooth: true,
            // symbol: 'none',
            areaStyle: {
              // color: '#b5c3ff'
              normal: {
                color: {
                  type: 'linear',
                  // 设置渐变起始点和结束点,从上到下渐变
                  x: 0,
                  y: 0,
                  x2: 0,
                  y2: 1,
                  colorStops: that.colorType,
                  global: false // 缺省为 false
                }
              }
            }
          }
        ]
      }
      myEchart.setOption(option)
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1488740.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python】进阶学习:pandas--read_excel()函数的基本使用

【Python】进阶学习&#xff1a;pandas–read_excel()函数的基本使用 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希…

【Mybatis】动态语句 第三期

文章目录 *一、if和where标签二、set标签三、trim标签四、choose/when/otherwise标签*五、foreach标签 ( 批量操作六、sql片段 *一、if和where标签 如果传入属性&#xff0c;就判断相等。不传入不加对应的条件。 if 判断传入的参数&#xff0c;最终是否添加语句 test 属性 &am…

139.乐理基础-一四五八度为何用纯?

上一个内容&#xff1a;138.乐理基础-等音、等音程的意义-CSDN博客 上一个内容里练习的答案&#xff1a; 以乐理里写的知识&#xff0c;没办法完全解释透彻 一四五八度为何用纯&#xff1f;这个问题&#xff0c;要透彻的话要从各个文明怎么发现音高、发明音高、制定规则等&…

如何在Vue中实现事件处理?

Vue是一种流行的JavaScript框架&#xff0c;广泛应用于前端开发。在Vue中&#xff0c;事件处理是一个非常关键的概念&#xff0c;可以帮助我们实现用户与页面的交互&#xff0c;今天我们就来探讨一下如何在Vue中实现事件处理。 首先&#xff0c;让我们先了解一下在Vue中如何绑…

【数据结构】实现堆

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解堆&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 一. 堆的概念及结构二. 堆的实现堆的结构体初始化销毁插入数据删除数据&#xff08;默认删除堆顶即…

基于Mahout实现K-Means聚类

需求分析 需要对数据集进行预处理&#xff0c;选择合适的特征进行聚类分析&#xff0c;确定聚类的数量和初始中心点&#xff0c;调用Mahout提供的K-Means算法进行聚类计算&#xff0c;评估聚类结果的准确性和稳定性。同时&#xff0c;需要对Mahout的使用和参数调优进行深入学习…

c++|内存管理

c|内存管理 C/C内存分布strlen 和 sizeof的区别 c语言动态内存管理方式malloccallocrealloc例题 c管理方式new/delete操作内置类型new/delete操作自定义类型证明 new 和 delete 的底层原理operator new与operator delete函数operator new 和 operator delete的 用法构造函数里面…

基于 Vue3打造前台+中台通用提效解决方案(下)

47、通用组件 - 倒计时组件 特惠部分存在一个倒计时的功能,所以我们需要先处理对应的倒计时模块,并把它处理成一个通用组件。 那么对于倒计时模块我们又应该如何进行处理呢? 所谓倒计时,其实更多的是一个时间的处理,那么对于时间的处理,此时我们就需要使用到一个第三方…

Socks5代理协议:原理、应用与优势

在计算机网络中&#xff0c;代理协议是一种用于转发客户端请求的机制。Socks5是其中一种广泛使用的代理协议。它主要工作在传输层和应用层之间&#xff0c;位于OSI参考模型的第五层&#xff08;会话层&#xff09;。其设计初衷是为了帮助授权用户突破防火墙限制&#xff0c;获取…

20240304-2-计算机网络

计算机网络 知识体系 Questions 1.计算机网络分层的优点和缺点 优点 各层之间是独立的&#xff1b;灵活性好&#xff1b;结构上可分割开&#xff1b;易于实现和维护&#xff1b;能促进标准化工作。 缺点&#xff1a; 降低效率&#xff1b;有些功能会在不同的层次中重复出现&…

2000-2021年全国各省市城乡平均受教育年限数据(分城镇和农村)(含原始数据+计算过程+计算结果)

2000-2021年全国各省市城乡平均受教育年限数据&#xff08;分城镇和农村&#xff09; 1、时间&#xff1a;2000-2021年 2、范围&#xff1a;全国及31省 3、来源&#xff1a;人口与就业统计年鉴 4、指标包括&#xff1a;城乡平均受教育年限 、6岁以上总人口 未上过学、…

自动化神器 Playwright 的 Web 自动化测试解决方案!

Playwright认识 3. Playwright环境搭建 Playwright简介&#xff1a; 2020年&#xff0c;微软&#xff08;Microsoft&#xff09;开源了一个名为Playwright的工具&#xff0c;与Selenium一样入门简单&#xff0c;支持多语言&#xff08;Python、Java、Node.js、.NET&#xff0…

Java8,函数式编程应用:

持续更新中&#xff1a; 函数式(Functional)接口 什么是函数式(Functional)接口 只包含一个抽象方法的接口&#xff0c;称为函数式接口。 你可以通过 Lambda 表达式来创建该接口的对象。&#xff08;若 Lambda 表达式 抛出一个受检异常(即&#xff1a;非运行时异常)&#xff0c…

Linux学习:初识Linux

目录 1. 引子&#xff1a;1.1 简述&#xff1a;操作系统1.2 学习工具 2. Linux操作系统中的一些基础概念与指令2.1 简单指令2.2 ls指令与文件2.3 cd指令与目录2.4 文件目录的新建与删除指令2.5 补充指令1&#xff1a;2.6 文件编辑与拷贝剪切2.7 文件的查看2.8 时间相关指令2.9 …

为什么TestNg会成为Java测试框架的首选?还犹豫什么,看它!

上一篇自动化测试我们大概了解了测试的目标、测试的技术选型以及搭建平台的目标及需求&#xff0c;也确定了自动化测试方案以testNg作为整个测试流程贯穿的基础支持框架&#xff0c;那么testNg究竟有什么特点&#xff1f;本篇开始我们来详细的学习testNg这个测试框架。 为什么要…

软件设计师8--输入输出技术

软件设计师8--输入输出技术 考点1&#xff1a;输入输出技术数据传输控制方式中断处理过程例题&#xff1a; 考点1&#xff1a;输入输出技术 数据传输控制方式 √ 程序控制&#xff08;查询&#xff09;方式&#xff1a;分为无条件传送和程序查询方式两种。方法简单&#xff0…

MySQL篇—执行计划之覆盖索引Using index和条件过滤Using where介绍(第三篇,总共三篇)

☘️博主介绍☘️&#xff1a; ✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux&#xff0c;也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章&#xff0c;并且也会默默的点赞收藏加关注❣…

python实现手机号归属地查询

手机上突然收到了某银行的短信提示&#xff0c;看了一下手机的位数&#xff0c;正好是11位。我一想&#xff0c;这不就是标准的手机号码吗&#xff1f;于是一个想法涌上心头——用python的库实现查询手机号码归属地查询自由。 那实现的效果如下&#xff1a; 注&#xff1a;电…

yolov7添加spd-conv注意力机制

一、spd-conv是什么&#xff1f; SPD-Conv&#xff08;Symmetric Positive Definite Convolution&#xff09;是一种新颖的卷积操作&#xff0c;它主要应用于处理对称正定矩阵&#xff08;SPD&#xff09;数据。在传统的卷积神经网络&#xff08;CNN&#xff09;中&#xff0c;…