极致呈现系列之:Echarts折线图的视觉冲击力

news2024/11/27 10:34:48

目录

  • 认识折线图
  • 折线图的创建
  • 折线图的美化
    • 修改折线的样式
    • 修改坐标轴的样式
    • 修改折线图上点的样式
    • 将折线设置为平滑曲线
    • 设置渐变色面积
    • 给折线图添加标记线
    • 给折线图添加标记点
  • 折线图的交互
    • 添加鼠标悬停提示
    • 添加数据区域选择与缩放

认识折线图

折线图是一种常用的数据可视化图表,通常用于展示随时间或者其他连续变量而变化的数据趋势。折线图由若干条连接数据点的折线组成,每条折线代表一个数据系列。折线图的横轴通常表示时间或者其他连续变量,纵轴表示数据的值,通过折线的变化来展示数据的趋势和变化情况。

折线图可以用于展示各种类型的数据,例如股票价格、气温变化、销售额变化等。折线图具有简单直观、易于理解、能够有效展示数据趋势等优点,被广泛应用于数据分析、商业决策、科学研究等领域。

折线图的创建

老规矩,要使用折线图,我们需要先引入Echarts

<template>
  <div ref="chart" style="width: 50%;height: 400px;"></div>
</template>
<script setup>
import * as echarts from 'echarts' 
import { ref, onMounted } from 'vue'
const chart = ref(null)
onMounted(() => { 
  const myChart = echarts.init(chart.value) 
  const option = {
  //配置项
  }
  myChart.setOption(option)
})

在上面这段代码中,我们首先通过 import 语句引入了 Echarts 库,然后在 mounted 钩子函数中创建了一个 Echarts 实例,并将其挂载到了指定的 DOM 元素上。同时定义了一个option对象,用于存储Echarts相关的配置项;后面,我们就可以通过 setOption 方法来配置 Echarts 实例,包括设置图表类型、数据、样式等。

配置一个最简单的折线图:在上面创建的option对象中配置如下代码

const option = {
    xAxis: {
      type: 'category',
      data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
      type: 'value'
    },
    series: [{
      type: 'line',
      data: [820, 932, 901, 934, 1290, 1330, 1320]
    }]
}

在上面的代码中,我们创建了一个包含七个数据点的折线图,其中 x 轴表示星期几,y 轴表示数据的值。在option对象汇总,我们设置了 x 轴的类型为 category,即分类类型,数据为星期几的文本数组;y 轴的类型为 value,即数值类型;折线图的数据则通过 series 属性进行设置。

然后通过 setOption 方法将option对象作为参数传递给myChart实例,这样,一个简单的折线图就完成了,刷新浏览器看效果
在这里插入图片描述

折线图的美化

修改折线的样式

我们通过修改series系列中的 lineStyle 属性来设置折线的样式,包括颜色、宽度、样式等。代码如下:

series: [{
      type: 'line',
      data: [820, 932, 901, 934, 1290, 1330, 1320],
      lineStyle: {
        color: '#ff7f50', // 折线颜色
        width: 2, // 折线宽度
        type: 'dashed' // 折线样式
      }
}]

修改完成后,刷新浏览器,看效果
在这里插入图片描述

修改坐标轴的样式

通过 axisLabelaxisLine 属性来设置坐标轴的标签和线条的样式。

 xAxis: {
      type: 'category',
      data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
      axisLabel: {
        color: '#080b30', // 坐标轴标签颜色
        fontSize: 12, // 坐标轴标签字号
      },
      axisLine: {
        lineStyle: {
          color: '#333' // 坐标轴线颜色
        }
      }
    },
    yAxis: {
      type: 'value',
      axisLabel: {
        color: '#080b30',
        fontSize: 12
      },
      axisLine: {
        lineStyle: {
          color: '#333'
        }
      }
},

修改后效果
在这里插入图片描述

修改折线图上点的样式

通过修改series中的 symbol 属性和 symbolSize 属性的值,来改变点的形状和大小。通过 itemStyle 属性来修改点的颜色和边框样式等。

symbol 属性用于指定点的图形类型,例如圆形、方形、三角形等,而 symbolSize 属性用于指定点的大小

series: [{
      type: 'line',
      data: [820, 932, 901, 934, 1290, 1330, 1320],
      lineStyle: {
        color: '#ff7f50', // 折线颜色
        width: 2, // 折线宽度
        type: 'dashed' // 折线样式
      },
      symbol: 'circle', // 指定点的图形类型为圆形
      symbolSize: 10, // 指定点的大小为10
      itemStyle: {
        color: 'red', // 指定点的颜色为红色 
      }
}]

在这里插入图片描述

将折线设置为平滑曲线

通过修改series中 smooth 属性的值,来控制曲线的平滑程度。
在这里插入图片描述

设置渐变色面积

通过配置 areaStyle 来设置折线图下面的面积。在 series 中设置 areaStyle,并指定其 opacity、color、shadowBlur 等属性来控制面积的显示效果。

series: [{
      type: 'line',
      data: [820, 932, 901, 934, 1290, 1330, 1320],
      lineStyle: {
        color: '#ff7f50', // 折线颜色
        width: 2, // 折线宽度
        type: 'dashed' // 折线样式
      },
      symbol: 'circle', // 指定点的图形类型为圆形
      symbolSize: 10, // 指定点的大小为10
      itemStyle: {
        color: 'red', // 指定点的颜色为红色 
      },
      smooth: true, // 将折线改为平滑曲线
      areaStyle: {
        opacity: 0.5,
        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
          offset: 0,
          color: 'rgba(255, 158, 68, 0.8)'
        }, {
          offset: 1,
          color: 'rgba(255, 70, 131, 0.8)'
        }]),
        shadowBlur: 20,
        shadowColor: 'rgba(0, 0, 0, 0.3)'
      } 
}]

在这里插入图片描述

给折线图添加标记线

series 中设置 markLine,并指定其 datasymbolsymbolSizelabel 等属性来控制标记线的显示效果。
symbol提供的标记类型包括:circle, rect, roundRect, triangle, diamond, pin, arrow, none

series: [{
      type: 'line',
      data: [820, 932, 901, 934, 1290, 1330, 1320],
      lineStyle: {
        color: '#ff7f50', // 折线颜色
        width: 2, // 折线宽度
        type: 'dashed' // 折线样式
      },
      symbol: 'circle', // 指定点的图形类型为圆形
      symbolSize: 10, // 指定点的大小为10
      itemStyle: {
        color: 'red', // 指定点的颜色为红色 
      },
      smooth: true, // 将折线改为平滑曲线
      areaStyle: {
        opacity: 0.5,
        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
          offset: 0,
          color: 'rgba(255, 158, 68, 0.8)'
        }, {
          offset: 1,
          color: 'rgba(255, 70, 131, 0.8)'
        }]),
        shadowBlur: 20,
        shadowColor: 'rgba(0, 0, 0, 0.3)'
      },
      markLine: {
        data: [
          {
            type: 'average',
            name: '平均值',
            label:{
              show: true,
              position: 'middle',
              formatter: '{b}: {c}'
            }
          }
        ],
        symbol:'pin',
        symbolSize: 10,
      }, 
    }]
}

在这里插入图片描述

给折线图添加标记点

series 中设置 markPoint,并指定其 datasymbolsymbolSizelabel 等属性来控制标记点的显示效果。

    series: [{
      type: 'line',
      data: [820, 932, 901, 934, 1290, 1330, 1320],
      lineStyle: {
        color: '#ff7f50', // 折线颜色
        width: 2, // 折线宽度
        type: 'dashed' // 折线样式
      },
      symbol: 'circle', // 指定点的图形类型为圆形
      symbolSize: 10, // 指定点的大小为10
      itemStyle: {
        color: 'red', // 指定点的颜色为红色 
      },
      smooth: true, // 将折线改为平滑曲线
      areaStyle: {
        opacity: 0.5,
        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
          offset: 0,
          color: 'rgba(255, 158, 68, 0.8)'
        }, {
          offset: 1,
          color: 'rgba(255, 70, 131, 0.8)'
        }]),
        shadowBlur: 20,
        shadowColor: 'rgba(0, 0, 0, 0.3)'
      },
      markLine: {
        data: [
          {
            type: 'average',
            name: '平均值',
            label:{
              show: true,
              position: 'middle',
              formatter: '{b}: {c}'
            }
          }
        ],
        symbol:'pin',
        symbolSize: 10,
      },
      markPoint: {
        data: [{
          type: 'max',
          name: '最大值'
        }, {
          type: 'min',
          name: '最小值'
        }],
        symbol: 'circle',
        symbolSize: 20,
        label: {
          show: true,
          position: 'top',
          formatter: '{b}: {c}'
        }
      }
    }]
  }

在上述代码中,markPoint 中的 data 属性设置标记点的数据,symbol 属性设置标记点的形状,symbolSize 属性设置标记点的大小,label 属性设置标记点的文本标签。可以通过 formatter 属性来自定义标记点文本的显示内容,其中 {b} 表示数据项名称,{c} 表示数据项值。
在这里插入图片描述

折线图的交互

添加鼠标悬停提示

通过tooltip属性为折线图添加鼠标悬停提示,让用户可以更加方便地查看数据。

tooltip: {
  trigger: 'axis' // 触发方式为鼠标悬停
}

在这里插入图片描述
我们还可以修改tooltip配置项下面axisPointer对象的lineStyle来设置提示线的样式

tooltip: {
        trigger: 'axis',
        axisPointer: {
            lineStyle: {
                color: {
                    type: 'linear',
                    x: 0,
                    y: 0,
                    x2: 0,
                    y2: 1,
                    colorStops: [{
                        offset: 0,
                        color: 'rgba(0, 255, 233,0)'
                    }, {
                        offset: 0.5,
                        color: 'rgba(255, 0, 255,1)',
                    }, {
                        offset: 1,
                        color: 'rgba(0, 255, 233,0)'
                    }],
                    global: false
                }
            },
        },
    },

在这里插入图片描述

添加数据区域选择与缩放

数据区域选择:
通过添加dataZoom配置项,并将其中的type设置为slider来给折线图添加滚动条

dataZoom: {
      type: 'slider', // 选择器类型为滑动条
      start: 0, // 默认选择范围的起始位置
      end: 100 // 默认选择范围的结束位置
}

上面代码通过 dataZoom 属性来设置数据区域选择的类型为滑动条,以及默认选择范围的起始位置和结束位置。
在这里插入图片描述
数据缩放:
数据缩放和数据区域选择都是添加dataZoom配置项,只是里面的type类型不同,如果设置为数据缩放,则将type内容设置为inside,这样图表下面将不会出现滚动条,当鼠标悬浮在图表上时,滚动滚轮,可以放大缩小图表

dataZoom: {
  type: 'inside', // 缩放类型为内置
  start: 0, // 默认选择范围的起始位置
  end: 100 // 默认选择范围的结束位置
}

在这里插入图片描述
好了,关于折线图的相关介绍就先到这里,有兴趣的小伙伴可以更深入的研究下,里面还有很多有趣的功能等待你来开发。

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

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

相关文章

React中的HOC高阶组件处理

先了解函数柯里化 柯里化函数&#xff08;Currying Function&#xff09;是指将一个接受多个参数的函数转化成一系列只接受单个参数的函数&#xff0c;并且返回接受单个参数的函数&#xff0c;达到简化函数调用和提高可读性的目的。 简单来说&#xff0c;柯里化即将接收多个参…

大数据为什么如此重要?

简单来说&#xff0c;大数据就是结构化的传统数据再加上非结构化的新数据。那么传统数据和新数据又是什么呢&#xff1f;传统数据就是IT业务系统里面的数据&#xff0c;如客户资料、财务数据等。这些数据是结构化的&#xff0c;量也不是特别大&#xff0c;一般只是TB级。对比传…

如何让自己的代码顺利通过代码审查?

最近很多同学&#xff0c;都去暑期实习了&#xff0c;实习就意味着要在公司项目是写代码了。 大多数同学&#xff0c;可能面试能力不错&#xff0c;但是实操还是弱了一些。之前有位同学&#xff0c;春招靠面试能力去了大厂&#xff0c;然后实习刚工作的时候&#xff0c;要写代…

Java30天拿下-----第二天(运算符,标识符,Scanner,进制转换)

Java30天拿下-----第二天 一 运算符算术运算符赋值运算符关系运算符逻辑运算符三元运算符运算符的优先级 二 标识符关键字保留字 三 控制台接收键盘输入&#xff1a;Scanner四 进制进制的转换&#xff08;基本功&#xff09;其他进制转为十进制十进制转为其他进制二进制转为其他…

《当我谈跑步时,我谈些什么》痛楚难以避免,而磨难可以选择

《当我谈跑步时&#xff0c;我谈些什么》痛楚难以避免&#xff0c;而磨难可以选择 村上春树&#xff0c;日本当代小说家&#xff0c;情感类类型作家。主要作品有《且听风吟》《挪威的森林》《海边的卡夫卡》《奇鸟行状录》《1Q84》等。 施小炜 译 来自百度百科的一条&#xff1…

存储快速入门——【2】数据复制与容灾、云存储、大数据概念

存储快速入门——【2】数据复制与容灾、云存储、大数据概念 一、数据复制与容灾 1 恢复时间目标&#xff08;RTO&#xff09;和恢复点目标&#xff08;RPO&#xff09; 对于信息系统而言&#xff0c;容灾就是使信息系统具有应对一定的灾难袭击&#xff0c;保持系统或间断运行…

2023年软件测试工程师,初级到高级进阶路线指南,测试之路...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 提到软件测试工程…

一、JavaScript函数this指向

1 this的绑定规则 2 apply/call/bind 3 this绑定优先级 4 绑定之外的情况 5 箭头函数的使用 6 this面试题分 <script>// 定义函数function foo(name) {console.log("foo函数:", this)}// 1.方式一: 直接调用 这里的this指向window// foo()// 2.方式二: 通…

Java网络编程知识

目录 1.网络编程概述 1.网络编程的目的 2.网络编程的三个问题 1.如何准确定位网络上的主机&#xff1f; 2.如何定位主机上的特定应用&#xff1f; 3.找到主机后如何可靠高效的进行数据传输&#xff1f; 2.通信要素一:IP和端口号 1.IP地址 2.端口号 3.套接字 4.通信要…

基于Yolov8的纸箱破损检测系统

目录 1.Yolov8介绍 2.纸箱破损数据集介绍 2.1数据集划分 2.2 通过voc_label.py得到适合yolov8训练需要的 2.3生成内容如下 3.训练结果分析 4. 纸张破损检测系统设计 4.1 PySide6介绍 4.2 安装PySide6 4.3 纸张破损检测系统设计 1.Yolov8介绍 Ultralytics YOLOv8是Ultral…

SpringBoot动态加载jar包中的bean

一、业务场景 在有些业务场景下&#xff0c;需要SpringBoot来动态加载jar中的class文件&#xff0c;自动往spring容器中添加新的bean&#xff1b;如物联网设备上传的信息用物模型来解析&#xff0c;用java来解析物模型&#xff0c;但用户的设备千差万别&#xff0c;解析设备的…

系统移植 搭建nfs服务器,启动盘,内核安装和加载

目录 1. nfs 服务器网络环境搭建 1.1. 查看是否安装了 nfs 服务器 1.2. 修改nfs配置文件 1.3. 创建nfs工作目录 1.4. 重启nfs服务 1.5. 开始测试是否成功 2. SD 卡启动盘 2.1. 方法1&#xff1a;从0扇区开始烧写 2.2. 方法2&#xff1a;直接部署 3. Linux 内核的安装…

SpringBoot编程---Day 01

目录 一、springboot介绍 &#xff08;一&#xff09;Spring Boot 特性 &#xff08;二&#xff09;了解自动配置原理 &#xff08;三&#xff09;springboot 入口功能详解 &#xff08;四&#xff09;自定义banner &#xff08;五&#xff09;容器功能 (六)配置文件 二…

(九)枚举器和迭代器(1)

一、枚举器和可枚举类型 复习完了数组之后&#xff0c;由于数组遍历的这个行为&#xff0c;跟枚举器有很大的相关性&#xff0c;所以接下来继续要学习与枚举器相关的内容。 1、使用 foreach 语句 int[] arr1 { 10, 11, 12, 13 };foreach (int item in arr1)//枚举元素Consol…

尚硅谷大数据Flink1.17实战教程-笔记01【Flink概述、Flink快速上手】

尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】视频地址&#xff1a;尚硅谷大数据Flink1.17实战教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据Flink1.17实战教程-笔记01【Flink概述、Flink快速上手】尚硅谷大数据Flink1.17实战教程-笔记02【Flink部署】尚硅谷…

【JVM 监控工具】性能诊断--JProfiler的使用

文章目录 背景一、Java 性能诊断工具简介二、简单命令行工具三、图形化综合诊断工具JVisualvmJProfiler 四、分布式应用性能诊断五、IDEA中设置JProfilerJProfiler是什么功能安装使用生成快照配置VM运行程序 背景 性能诊断是软件工程师在日常工作中需要经常面对和解决的问题&a…

公司新来的阿里p8,看了我做的APP和接口测试,甩给了我这份文档

移动应用App已经渗透到每个人的生活、娱乐、学习、工作当中&#xff0c;令人激动、兴奋且具有创造性的各种App犹如雨后春笋般交付到用户手中。各类智能终端也在快速发布&#xff0c;而开发者对于全球移动设备的质量和性能却掌握甚少&#xff0c;App与设备的兼容性问题常常导致用…

【状态估计】基于卡尔曼滤波器的传感器直流电机驱动研究(Matlab代码、Simulink实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Navicat 受邀出席 PostgreSQL 技术峰会,欢迎莅临我们的展台了解 Navicat 工具包如何提升你的工作效能

Navicat 受邀出席 PostgreSQL 技术峰会成都站&#xff0c;欢迎童鞋们莅临我们的展台。你有机会与我们的专家面对面交流&#xff0c;并了解实用的 Navicat 工具包如何帮助PostgreSQL用户&#xff08;应用开发人员、DBA、运维人员以及数据分析师&#xff09;有效地提升日常的工作…

串口控制小车(二次开发)

0.资料 项目工程文件夹 分文件原理 之前的代码 1.L9110S电机驱动模块demo 2.串口通信&#xff08;习题4&#xff1a;PC发送字符串指令给单片机&#xff09; 3.wifi模块&#xff08;串口中断代码优化&#xff09; 3.蓝牙模块 1.串口指令控制小车_分文件 1、和单片机的接…