学习使用echats因xAxis值过多,可以滚动的柱状图解决方案

news2024/11/25 12:39:41

学习使用echats因xAxis值过多,可以滚动的柱状图解决方案

    • 效果图
    • 柱状图代码
    • 关键代码

效果图

在这里插入图片描述

柱状图代码

function echarts() {
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('echart4'));

        let xaxisData = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30'];
        let option = {
            tooltip: {
                trigger: 'axis',
                axisPointer: {
                    lineStyle: {
                        color: '#57617B'
                    }
                }
            },
            "legend": {

                "data": [
                    {"name": "2023年"},
                    {"name": "2024年"},
                    {"name": "完成率"}
                ],
                "top": "0%",
                "textStyle": {
                    "color": "rgba(255,255,255,0.9)"//图例文字
                }
            },
            "label": {
                "show": true, //开启显示
                "position": 'top', //在右侧显示:right,
                "textStyle": {
                    "color": "rgba(255,255,255,0.9)"//图例文字
                }
            },
            "xAxis": [
                {
                    "type": "category",

                    //data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
                    data: xaxisData,
                    axisLine: {lineStyle: {color: "rgba(255,255,255,.1)"}},
                    axisLabel: {
                        textStyle: {color: "rgba(255,255,255,.6)", fontSize: '14',},
                    },

                },
            ],
            "yAxis": [
                {
                    "type": "value",
                    "name": "金额",
                    "min": 0,
                    "max": 10000,
                    "interval": 100,
                    "show": false,
                    "axisLabel": {
                        "show": false,//控制是否显示:true,false
                    },
                    axisLine: {lineStyle: {color: 'rgba(255,255,255,.4)'}},//左线色

                },
                {
                    "type": "value",
                    "name": "完成率",
                    "show": true,
                    "axisLabel": {
                        "show": true,//控制显示

                    },
                    axisLine: {lineStyle: {color: 'rgba(255,255,255,.4)'}},//右线色
                    splitLine: {show: true, lineStyle: {color: "#001e94"}},//x轴线
                },
            ],

            "grid": {
                "top": "10%",
                "right": "30",
                "bottom": "30",
                "left": "2%",
            },
            dataZoom: [

                {

                    xAxisIndex: 0, //这里是从X轴的0刻度开始

                    show: false, //是否显示滑动条,不影响使用

                    type: "inside", // 这个 dataZoom 组件是 inside 型 dataZoom 组件

                    startValue: 0, // 从头开始。

                    endValue: 12, // 一次性展示4个。

                },

            ],

            "series": [
                {
                    "name": "2023年",
                    "type": "bar",
                    // "data": [123437323, 123578456, 412345636, 912345676, 295532188, 645232535, 434534523, 666673453, 335665340, 334345326, 442323428, 124553222],
                    "data": [111, 222, 333, 444, 555, 666, 777, 888, 999, 1010, 1111, 1212, 1313, 1414, 1515, 1616, 1717, 1818, 1919, 2020, 2121, 2222, 2323, 2424, 2525, 2626, 2727, 2828, 2929, 3030],
                    "barWidth": "auto",
                    label: {
                        show: true, // 是否显示标签
                        position: 'top', // 标签位置,可选值为:top、bottom、center、inside(柱状图内部)、outside(柱状图外部)
                        textStyle: {
                            color: '#FF00FF', // 标签字体颜色
                            fontSize: 14, // 标签字体大小
                            fontWeight: 'bold', // 标签字体加粗
                            fontStyle: 'italic', // 标签字体斜体
                            fontFamily: 'Arial' // 标签字体
                        }
                    },
                    "itemStyle": {
                        "normal": {
                            "color": {
                                "type": "linear",
                                "x": 0,
                                "y": 0,
                                "x2": 0,
                                "y2": 1,
                                "colorStops": [
                                    {
                                        "offset": 0,
                                        "color": "#609db8"
                                    },

                                    {
                                        "offset": 1,
                                        "color": "#609db8"
                                    }
                                ],
                                "globalCoord": false
                            }
                        }
                    }
                },
                {
                    "name": "2024年",
                    "type": "bar",
                    "data": [
                        //  423332331, 789142442, 334354524, 135534536, 247448338, 845533436, 444545222, 209876532, 313226542, 665367567, 246854533, 156554458
                        11, 22, 33, 44, 55, 66, 77, 88, 99, 110, 111, 121, 133, 141, 155, 166, 171, 188, 199, 202, 212, 222, 233, 242, 252, 262, 277, 288, 299, 300
                    ],
                    "barWidth": "auto",

                    "itemStyle": {
                        "normal": {
                            "color": {
                                "type": "linear",
                                "x": 0,
                                "y": 0,
                                "x2": 0,
                                "y2": 1,
                                "colorStops": [
                                    {
                                        "offset": 0,
                                        "color": "#66b8a7"
                                    },
                                    {
                                        "offset": 1,
                                        "color": "#66b8a7"
                                    }
                                ],
                                "globalCoord": false
                            }
                        }
                    },
                    "barGap": "0"
                },
                {
                    "name": "完成率",
                    "type": "line",
                    "yAxisIndex": 1,

                    "data": [
                        //  100, 50, 80, 30, 90, 40, 70, 33, 100, 40, 80, 20
                        1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
                    ],
                    lineStyle: {
                        normal: {
                            width: 2
                        },
                    },
                    "itemStyle": {
                        "normal": {
                            "color": "#cdba00",

                        }
                    },
                    "smooth": true
                }
            ]
        };


        // 使用刚指定的配置项和数据显示图表。

        /*        myChart.setOption(option);
                window.addEventListener("resize", function () {
                    myChart.resize();
                });*/

        console.log('111option.dataZoom===', option.dataZoom);
        console.log('111option.dataZoom[0].endValue===', option.dataZoom[0].endValue);
        console.log('111xaxisData.length===', xaxisData.length);


        timeInterval = setInterval(() => {

            console.log('222option.dataZoom===', option.dataZoom);
            console.log('222option.dataZoom[0].endValue===', option.dataZoom[0].endValue);
            console.log('222xaxisData.length===', xaxisData.length);

            if (option.dataZoom[0].endValue == xaxisData.length) {

                option.dataZoom[0].endValue = 5;

                option.dataZoom[0].startValue = 0;

            } else {

                option.dataZoom[0].endValue = option.dataZoom[0].endValue + 1;

                option.dataZoom[0].startValue = option.dataZoom[0].startValue + 1;

            }

            myChart.setOption(option);

        }, 2000);

    }

关键代码

setInterval定时器来实现的自右向左的滚动;

 timeInterval = setInterval(() => {

            console.log('222option.dataZoom===', option.dataZoom);
            console.log('222option.dataZoom[0].endValue===', option.dataZoom[0].endValue);
            console.log('222xaxisData.length===', xaxisData.length);

            if (option.dataZoom[0].endValue == xaxisData.length) {

                option.dataZoom[0].endValue = 5;

                option.dataZoom[0].startValue = 0;

            } else {

                option.dataZoom[0].endValue = option.dataZoom[0].endValue + 1;

                option.dataZoom[0].startValue = option.dataZoom[0].startValue + 1;

            }

            myChart.setOption(option);

        }, 2000);
dataZoom: [

                {

                    xAxisIndex: 0, //这里是从X轴的0刻度开始

                    show: false, //是否显示滑动条,不影响使用

                    type: "inside", // 这个 dataZoom 组件是 inside 型 dataZoom 组件

                    startValue: 0, // 从头开始。

                    endValue: 12, // 一次性展示4个。

                },

            ],

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

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

相关文章

HTML常用标签-最基础的标签

从本篇开始,我们围绕HTML原生标签开始,围绕整个前端三剑客进行,将进行一个大致的介绍和案例展示,没有啥技术含量,只是把学习前端的时候,案例全部展示出来,作为一个实时记录,或者说回…

Redis高可用(持久化)

目录 一、Redis高可用 1. Redis高可用概述 2. Redis高可用策略 二、Redis持久化 1. Redis持久化的功能 2. Redis持久化的两种方式 3. RDB持久化 3.1 触发条件 3.1.1 手动触发 3.1.2 自动触发 ① 配置方式 ②其他自动触发机制 3.2 执行流程 3.3 启动时加载 4. AOF…

jnpf3.6私有化部署

文件内容 project web > 特别说明:源码、JDK、MySQL、Redis等安装或存放路径禁止包含中文、空格、特殊字符等## 一 技术栈- 主框架:Spring Boot Spring Framework - 持久层框架:MyBatis-Plus - 数据库连接池:Alibaba Druid -…

商场促销--策略模式

1.1 商场收银软件 package com.lhx.design.pattern.test;import java.util.Scanner;public class Test {public static void main(String[] args){System.out.println("**********************************************"); System.out.println("《大话设计模式…

坦白局:PMP真的是智商税吗?

近些年报考PMP认证的学员越来越多,PMP全球持证人数已经突破百万了,据PMI统计,IT行业近50%人士都持有PMP证书,因此也有很多学员在思考,PMP持证人员这么多,PMP是不是都已经烂大街了?证书还有含金量…

看完不会来揍我 | R包的下载与安装 | 再也没有一个包可以逃出你的手掌心啦

好久不见!非常抱歉有一段时间没有更新正经内容啦!主要是最近接了一个项目和一个一对一指导,实在是精力有限,又不想随便写几篇应付大家。毕竟,咱们主打高质量嘛!来!大声喊出来! 「要知…

英伟达智算先锋训练,冲刺智算时代实战

随着数字经济的深入发展,智能算力作为关键生产力,其规模在2022年已达到268.0 EFLOPS,并预计到2028年将增长至2769 EFLOPS,显示出强劲的发展势头。在2024年政府工作报告中,也首次提出了“人工智能”行动,强调…

Golang 内存管理和垃圾回收底层原理(二)

一、这篇文章我们来聊聊Golang内存管理和垃圾回收,主要注重基本底层原理讲解,进一步实战待后续文章 垃圾回收,无论是Java 还是 Golang,基本的逻辑都是基于 标记-清理 的, 标记是指标记可能需要回收的对象&#xff0c…

Java设计之道:色即是空,空即是色

0.引子 我们的这个世界上,存在这么一种东西: 第一:它不占据任何3D之体积,即它没有Volume第二:它也不占据任何2D之面积,即它没有Area第三:它也不占据任何1D之长度,即它没有Length 总…

【容易不简单】love 2d Lua 俄罗斯方块超详细教程

源码已经更新在CSDN的码库里: git clone https://gitcode.com/funsion/love2d-game.git 一直在找Lua 能快速便捷实现图形界面的软件,找了一堆,终于发现love2d是小而美的原生lua图形界面实现的方式。 并参考相关教程做了一个更详细的&#x…

【深耕 Python】Data Science with Python 数据科学(7)书352页练习题

写在前面 关于数据科学环境的建立,可以参考我的博客: 【深耕 Python】Data Science with Python 数据科学(1)环境搭建 往期数据科学博文: 【深耕 Python】Data Science with Python 数据科学(2&#xf…

苹果开发者账号注册步骤中的常见疑问解答与技巧分享

转载:注册苹果开发者账号的方法 在2020年以前,注册苹果开发者账号后,就可以生成证书。 但2020年后,因为注册苹果开发者账号需要使用Apple Developer app注册开发者账号,所以需要缴费才能创建ios证书了。 所以新政策出…

算法系列--递归,回溯,剪枝的综合应用(3)

💕"对相爱的人来说,对方的心意,才是最好的房子。"💕 作者:Lvzi 文章主要内容:算法系列–递归,回溯,剪枝的综合应用(3) 大家好,今天为大家带来的是算法系列--递归,回溯,剪枝的综合应用(3),带来几…

深入浅出:大模型产业链的全景解码

大模型产业仿佛如同一场盛宴,虽然AGI的菜肴还没有上桌,但掩盖不住的香味已经让所有人垂涎,都希望自己将来在餐桌上能够“吃饱饱”。这也是一场没有邀请函的宴席,从尚在学校的学生到公司的决策层,都能在生成式AI的相关研…

简单而复杂的Python

Python是一种简单&复杂的编程语言。简单的时候可以到极致: print(hello world!)另一方面,Python 也具有许多复杂的语法特性,例如面向对象编程、装饰器、迭代器、生成器等等。这些特性使得 Python 适用于各种不同的编程任务和项目。 当我…

【JavaWeb】Day31.SpringBootWeb请求响应——分层解耦(二)

3.IOC&DI 3.1 IOC&DI入门 完成Controller层、Service层、Dao层的代码解耦 思路: 1. 删除Controller层、Service层中new对象的代码 2. Service层及Dao层的实现类,交给IOC容器管理 3. 为Controller及Service注入运行时依赖的对象 Controller程序…

HarmonyOS 应用开发之同步任务开发指导 (TaskPool和Worker)

同步任务是指在多个线程之间协调执行的任务,其目的是确保多个任务按照一定的顺序和规则执行,例如使用锁来防止数据竞争。 同步任务的实现需要考虑多个线程之间的协作和同步,以确保数据的正确性和程序的正确执行。 由于TaskPool偏向于单个独…

【Java代码审计】SSTI模板注入篇

【Java代码审计】SSTI模板注入篇 1.概述2.Velocity 模板引擎3.Thymeleaf 模板注入复现普通url作为视图 4.SSTI 漏洞修复白名单控制跳转模版设置response参数 1.概述 模板引擎支持使用静态模板文件,在运行时用 HTML 页面中的实际值替换变量/占位符,从而让…

蓝桥杯刷题第六天(昨天忘记发了)

今天想从不一样的角度来解题:从时间紧张暴力求解到思路阔达直接通过所有案例 暴力方法: 思路第一眼看到这个问题我就想到了第一个思路就是先用两个数组一个存石子数一个存颜色状态,每次遍历一遍看看有没有相邻石子颜色一样且为和最小的。 im…

如何整合当地商家资源?如何进行二次变现?

随着市场竞争的日益激烈,商家们纷纷寻求创新的营销方式来扩大市场份额、提升品牌影响力。异业联盟作为一种新型的商业合作模式,正逐渐受到业界的关注和认可。本文将探讨异业联盟的可行性,并分析其是否可以通过小程序形式实现更广泛的应用。 一…