【echarts】数据过多时可以左右滑动查看(可鼠标可滚动条)
1. 鼠标左右拖动
在和 series 同级的地方配置 dataZoom:
dataZoom: [{type: 'inside', // inside 鼠标左右拖图表,滚轮缩放; slider 使用滑动条start: 0, // 左边的滑块位置,表示从 0 开始显示end: 60, // 右边的滑块位置,表示只显示3个点(33.333% 表示总长度的 30%)// 滑动条可选配置---------------------// handleSize: '80%', // 滑块的大小// 自定义滑块样式可选配置 --------------// handleStyle: {// color: '#a27df6',// shadowBlur: 2,// shadowColor: '#666',// shadowOffsetX: 1,// shadowOffsetY: 2,// },},],
关于 end 配置项的图解:


感觉和 ucharts 的 itemCount 意思差不多,都表示一开始图表中 x 轴展示多少数据;
上面图表的完整代码如下:
import React, { useEffect, useRef, useState } from 'react';
import * as echarts from 'echarts';
import 'echarts/lib/chart/bar';
import 'echarts/lib/component/tooltip';
import 'echarts/lib/component/title';
import './index.css';const LineEchartsImage = (props) => {const chartRef = useRef<HTMLDivElement>(null);const { totalList } = props;// console.log('totalList',totalList.detailsPlanCountVOList);// const [projectTotal, setProjectTotal] = useState(0);useEffect(() => {let xArr: string[] = [];let yArr: string[] = [];// // let total: number = 0;if (Array.isArray(totalList)) {totalList.forEach((item: { zlgcType: string; classifiedCount: string }) => {xArr.push(item.zlgcType);yArr.push(item.classifiedCount);// total = item.projectTotal;});}// setProjectTotal(total);const mainElement = chartRef.current;if (mainElement) {// 初始化 echarts 实例const myChart = echarts.init(mainElement);// 绘制图表myChart.setOption({title: {// text: '示例标题'subtext: '影像数量',},tooltip: {// 移入显示虚线trigger: 'axis',},xAxis: {type: 'category',data: xArr,axisLabel: {interval: 0,rotate: 15,},},yAxis: {// minInterval: 1,type: 'value',},series: [{name: '影像数量',data: yArr,barWidth: '30',type: 'bar',itemStyle: {color: '#1C5DA8',},},],dataZoom: [{type: 'inside', // inside拖图表 slider使用滑动条start: 0, // 左边的滑块位置,表示从0开始显示end: 50, // 右边的滑块位置,表示只显示3个点(33.33333333333333%表示总长度的30%)// handleSize: '80%', // 滑块的大小// handleStyle: {// // 自定义滑块样式// color: '#a27df6',// shadowBlur: 2,// shadowColor: '#666',// shadowOffsetX: 1,// shadowOffsetY: 2,// },},],});window.addEventListener('resize', function () {myChart.resize();});// 清理函数return () => {myChart.dispose();};}}, [totalList]);return (<div className="box"><div className="box-title"><div className="left"><span>亮点影像统计</span></div>{/* <div className="right">总数:<span>{projectTotal}</span></div> */}</div><div ref={chartRef} style={{ width: 800, height: 370 }}></div></div>);
};export default LineEchartsImage;
2.滚动条拖动+自定义样式

如图,是在图表下方显示的可拖动的滚动条,可以左右横向拉动,这里更改了滚动条的自定义样式:
dataZoom: [{type: 'slider', // 滑动条单独显示show: true, // 是否显示滑动条startValue: 0, // 展示区域内容的起始数值endValue: 7, // 展示区域内容的结束数值 当前展示x坐标下标为0-7height: 6, // 滑动条组件高度bottom: 0, // 距离图表区域下边的距离borderRadius: 5,showDetail: false, // 拖拽时是否显示详情showDataShadow: false,fillerColor: '#00000033', // 平移条的填充颜色borderColor: 'transparent', // 边框颜色zoomLock: true, // 锁定视图brushSelect: false, // 不可缩放 滑动条默认是有手柄可以进行展示的内容区域缩放的,不太美观// 通过该属性可以只滑动,不显示缩放功能handleStyle: {opacity: 0,},lineStyle: {opacity: 0,},textStyle: {fontSize: 0,},},],
自定义滚动条样式代码参考:https://segmentfault.com/q/1010000042980785/a-1020000042998285
相关文章:
【echarts】数据过多时可以左右滑动查看(可鼠标可滚动条)
1. 鼠标左右拖动 在和 series 同级的地方配置 dataZoom: dataZoom: [{type: inside, // inside 鼠标左右拖图表,滚轮缩放; slider 使用滑动条start: 0, // 左边的滑块位置,表示从 0 开始显示end: 60, // 右边的滑块位置…...
Python 实现对人的行为预测
引言 随着人工智能技术的快速发展,行为预测在多个领域如智能安防、自动驾驶、个性化推荐系统等中扮演着越来越重要的角色。通过分析历史数据并结合先进的机器学习算法,我们可以预测个体或群体的行为模式,从而做出更加智能和高效的决策。本文…...
使用枚举实现单例模式,不会反序列化破坏攻击,不会被反射破坏攻击。(附带枚举单例的简单实现)
原因分析 1.反序列化方法 ① jdk8中的Enum源码中对反序列化方法进行重写,抛出异常。 java.lang.Enum#readObject方法截图如下 ②java.io.ObjectInputStream#readObject 方法中的 readEnum 方法处理了枚举类型的反序列化,从而确保了枚举的单例特性。 …...
scala隐式转换
概念: 在Scala编程语言中,隐式转换是一种强大的功能,它允许程序在需要时自动转换数据类型或增强对象功能。这种转换通常是通过定义一个标记为implicit的函数来实现的,这个函数能够将一种类型转换为另一种类型。隐式转换的使用可以…...
Spring Boot 应用 “Connection is closed” 及 MySQL 空闲超时断开连接解决方案
在使用 Spring Boot MySQL HikariCP 的组合时,可能会在生产或测试环境中遭遇类似如下异常信息: org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [SELECT ...]; SQL state [nu…...
SLF4J框架原理及其实现方案
slf4j 是一个日志规范框架;基本上所有的 JAVA 日志都要实现这个规范;比如:Logback、log4j、log4j2;本文档记载如何实现 slf4j 规范;实现自己的日志框架; slf4j 分为两个部分,其中包含 …...
代码随想录-算法训练营-番外(图论01:图论理论基础,所有可到达的路径)
day01 图论part01 今日任务:图论理论基础/所有可到达的路径 代码随想录图论视频部分还没更新 https://programmercarl.com/kamacoder/图论理论基础.html#图的基本概念 day01 所有可达路径 邻接矩阵 import java.util.Scanner;import java.util.List;import java.util.ArrayL…...
【JAVA】Java项目实战—Java EE项目:企业资源规划(ERP)系统
在企业管理中,企业资源规划(ERP)系统是不可或缺的工具。它能够帮助企业高效管理各种资源,包括人力资源、财务资源和库存等。Java作为一种成熟的编程语言,因其跨平台特性、强大的生态系统以及良好的社区支持,…...
springboot配置过滤器解决html资源路径和接口路径冲突问题
比如: html文件使用 / 接口路径使用 /api 首先配置文件里肯定配置范围最大的根路径 server:port: 80servlet:context-path: / 过滤器代码 Slf4j public class RequestSeparationFilter implements Filter {Overridepublic void init(FilterConfig filterConfi…...
在IDE中使用Git
我们在开发的时候肯定是经常使用IDE进行开发的,所以在IDE中使用Git也是非常常用的,接下来以IDEA为例,其他的VS code ,Pycharm等IDE都是一样的。 在IDEA中配置Git 1.打开IDEA 2.点击setting 3.直接搜索git 如果已经安装了会自…...
【AIGC进阶-ChatGPT提示词副业解析】反向心理学在沟通中的运用:激将法的艺术
引言 在日常沟通和管理中,直接的表达方式并不总能达到预期效果。反向心理学,特别是其中的激将法,作为一种独特的沟通技巧,往往能在看似消极的表达中激发出积极的反应。本文将深入探讨反向心理学中激将法的运用技巧、实施策略及其…...
JeecgBoot passwordChange 任意用户密码重置漏洞复现
0x01 产品简介 Jeecg Boot是一个企业级低代码开发平台,基于前后端分离的架构,融合了SpringBoot、SpringCloud、Ant Design、Vue、Mybatis-plus、Shiro、JWT等多种主流技术,旨在帮助企业快速构建各种应用系统,提高开发效率,降低开发成本。采用最新主流的前后分离框架,使得…...
【智体OS】官方上新发布智体机器人:使用rtrobot智体应用远程控制平衡车机器人
【智体OS】官方上新发布智体机器人:使用rtrobot智体应用远程控制平衡车机器人 dtns.network是一款主要由JavaScript编写的智体世界引擎(内嵌了three.js编辑器的定制版-支持以第一视角浏览3D场馆),可以在浏览器和node.js、deno、e…...
Blazor(.razor)+VUE+elementUI适合一起用吗
在实际项目中,将 Blazor(.razor) 与 Vue.js 和 ElementUI 一起使用是可以实现的,但是否适合取决于你的项目需求、开发团队的技术栈和具体场景。以下是对这种组合的详细分析: 一、适合一起使用的场景 1.1 逐步引入 Bla…...
SpringBoot左脚进门之Maven管理家
一、概念 Maven 是一个项目管理和整合工具。通过对 目录结构和构建生命周期 的标准化, 使开发团队用极少的时间就能够自动完成工程的基础构建配置。 Maven 简化了工程的构建过程,并对其标准化,提高了重用性。 Maven 本地仓库 (Local Reposi…...
188-下翻便携式6U CPCI工控机箱
一、板卡概述 下翻式CPCI便携工控机,系统采用6u cpci背板结构,1个系统槽,7个扩展槽, 满足对携带的需求,可装标准6U8槽CPCI主板,8个扩展槽, 满足客户对空间扩展的需求.可宽温服务的工作产品,15高亮度液晶显示屏,超薄88键笔记本键盘,触摸式鼠标,加固型机箱结构,使它能够适应各种复…...
Ubuntu 挂载目录
1. 临时挂载(重启后失效) 创建挂载点: $ sudo mkdir -p /work临时挂载磁盘到 work 目录: $ sudo mount /dev/nvme0n1p1 /work验证挂载是否成功: $ df -h /work此方法挂载在系统重启后会失效,需手动重新挂载…...
基于IEEE 802.1Qci的时间敏感网络(TSN)主干架构安全分析及异常检测系统设计
中文标题:基于IEEE 802.1Qci的时间敏感网络(TSN)主干架构安全分析及异常检测系统设计 英文标题:Security Analysis of the TSN Backbone Architecture and Anomaly Detection System Design Based on IEEE 802.1Qci 作者信息&…...
2024年食堂采购系统源码技术趋势:如何开发智能的供应链管理APP
本篇文章,小编将与大家一同探讨2024年食堂采购系统的技术趋势,并提供开发更智能的供应链管理APP的策略。 一、2024年食堂采购系统的技术趋势 1.人工智能与机器学习的深度应用 在2024年,AI和机器学习在食堂采购系统中的应用将更加普遍。这些…...
zotero安装教程(包括茉莉花插件)
zotero安装教程(包括茉莉花插件) zotero下载(windows)1-安装 Zotero2-安装 Zotero Connector3-安装浏览器插件--jasminum茉莉花功能:插件下载地址:[https://github.com/search?qjasminum&typerepositories](https://github.c…...
利用自定义Ref实现防抖
防抖(Debounce)是一种常见的前端优化技术,用于限制函数频繁触发。本文通过自定义 ref 可以将其封装为可复用的逻辑。 防抖原理 防抖的核心是延迟执行函数,若在延迟时间内再次触发,则重新计时。通常用于输入框搜索、窗…...
基于Simulink的无刷电机调速系统仿真
目 录 第一章 绪论 1 1.1 研究背景及研究意义 1 1.2 无刷直流电机调速系统的国内外研究现状 2 1.3 本文的主要研究内容及章节安排 3 第二章 无刷直流电机的基本原理 4 2.1 无刷直流电机的基本结构 4 2.1.1 电机本体 4 1.电动机定子 4 2. 电动机转子 5 2.1.2 位置传感器 5 2.…...
用Minimalmodbus玩转PLC通信:从环境配置到寄存器读写的完整流程
MinimalModbus实战指南:高效连接西门子PLC的Python自动化方案 工业自动化领域的数据采集常面临设备资源有限、协议兼容性复杂等挑战。作为一款专为嵌入式系统优化的轻量级库,MinimalModbus以其简洁的API和极低的内存占用,成为连接西门子S7系列…...
【案例共创】码道小工匠,儿童跳绳智能计数系统开发实战
最新案例动态,请查阅【案例共创】码道小工匠,儿童跳绳智能计数系统开发实战小伙伴们快来进行实操吧! 本案例由开发者:yd_sun提供,华为开发者空间案例中心优化并收录。 一、概述 1.1 适用对象 个人开发者高校学生企…...
Qwen2.5-VL底座+lychee-rerank-mm效果惊艳:批量图片智能打分可视化展示
Qwen2.5-VL底座lychee-rerank-mm效果惊艳:批量图片智能打分可视化展示 1. 项目简介 这是一个专门为RTX 4090显卡(24G显存)打造的智能图片排序系统。核心基于阿里通义千问Qwen2.5-VL多模态大模型,结合Lychee-rerank-mm专业重排序…...
RMBG-2.0(BiRefNet)开源抠图工具落地实操:Streamlit双列界面零门槛上手
RMBG-2.0(BiRefNet)开源抠图工具落地实操:Streamlit双列界面零门槛上手 想给产品换个背景,却不会用复杂的PS?想快速处理一批图片素材,又担心在线工具泄露隐私?今天,我们就来聊聊一个…...
Llama-3.2V-11B-cot效果展示:低光照/模糊图像下的鲁棒推理案例
Llama-3.2V-11B-cot效果展示:低光照/模糊图像下的鲁棒推理案例 1. 项目概述 Llama-3.2V-11B-cot是基于Meta Llama-3.2V-11B-cot多模态大模型开发的高性能视觉推理工具,专为双卡4090环境深度优化。该工具不仅修复了视觉权重加载的关键Bug,还…...
保姆级教程:用ACE-Step一键生成多语言音乐,视频配乐不求人
保姆级教程:用ACE-Step一键生成多语言音乐,视频配乐不求人 你是不是也遇到过这样的烦恼?精心剪辑的视频,万事俱备,就差一段能完美烘托氛围的背景音乐。翻遍免费音乐库,要么风格不搭,要么听腻了…...
OpenClaw学习助手:Qwen3-4B自动整理技术文档实战
OpenClaw学习助手:Qwen3-4B自动整理技术文档实战 1. 为什么需要AI文档整理助手 作为一个经常需要阅读大量技术文档的开发者,我发现自己长期陷入"收集-遗忘-重复阅读"的恶性循环。PDF里的关键知识点总是淹没在几十页的细节中,手动…...
激光测距技术:从原理到选型的全方位指南
1. 激光测距技术的基本原理 激光测距技术本质上是通过测量激光信号从发射到接收的时间或相位变化来计算距离。想象一下你在山谷里大喊一声,通过听到回声的时间差就能估算出对面山壁的距离,激光测距就是这个原理的"高科技版本"。只不过激光的速…...
