首页 > 其他分享 >echarts实践总结(常用一):柱状图(特点:渐变色、点击缩放、左右滑动、悬浮展示样式)

echarts实践总结(常用一):柱状图(特点:渐变色、点击缩放、左右滑动、悬浮展示样式)

时间:2024-03-17 20:04:07浏览次数:28  
标签:缩放 color 渐变色 坐标轴 柱状图 type echarts

目录

第一章 echarts基本使用

第二章 echarts实践——柱状图


  • 效果展示

第一章 echarts基本使用

Echarts常用配置项(详细入门)_echarts配置项手册-CSDN博客

第二章 echarts实践——柱状图

最近接到这么一个需求,需要画页面,然后有这么几个echarts的图需要画,平常我们通过教程都是绘画一些简单的柱状图,导致我们对ecahrts的一些api不适特别深入,小编也是,这里就给出一个小编实战中的例子,涵盖面相对广一点,实现的效果有:鼠标悬浮有另一个柱状图覆盖、可以缩放从而添加可视区域柱子的条数、左右滑动展示柱状图、渐变颜色以及一些基本的柱状图配置。

  • html部分
<div class="bar" style="width: 1000px;height: 500px;">
    <!-- 柱状图 -->
    <div id="handlerView" style="width: 100%;height: 100%;"></div>
</div>
  • js部分——详细说明在代码中
<script src="./base_js/echarts.min.js"></script>
<script>
    const handlerViewDom = document.getElementById('handlerView')
    let handlerChart = echarts.init(handlerViewDom)
    // x轴数据
    let xData = ['苏州', '无锡', '南通', '常州', '徐州', '扬州', '南京', '宿迁', '连云港', '盐城', '淮安', '镇江', '泰州']
    // y轴数据
    let yData = [28, 32, 12, 36, 35, 37, 29, 33, 21, 23, 34, 20, 27]
    // 最大值,用于设置背景柱体高度
    let maxData = []
    let temp = yData.sort((a, b) => {
        return a - b
    })
    yData.forEach(item => {
        maxData.push(temp[temp.length - 1])
    })
    let handlerOption = {
        xAxis: {
            type: 'category', // 类型
            data: xData, // x轴数据
            axisLine: { // x坐标轴轴样式展示
                show: true, // 是否显示坐标轴x轴线。
                onZero: true, // X 轴或者 Y 轴的轴线是否在另一个轴的 0 刻度上
                symbol: 'none', // 轴线两边的箭头。可以是字符串,表示两端使用同样的箭头;或者长度为 2 的字符串数组,分别表示两端的箭头。默认不显示箭头,即 'none'。两端都显示箭头可以设置为 'arrow',只在末端显示箭头可以设置为 ['none', 'arrow']
                lineStyle: { // x轴的样式,一个对象,属性有:{ color , width , type , dashOffset , cap , join , miterLimit , shadowBlur , shadowColor , shadowOffsetX , shadowOffsetY , opacity }
                    color: '#B6BABD'
                }
            },
            axisTick: { // 是否显示坐标轴刻度
                show: false
            }
        },
        yAxis: {
            name: '单位(时)', // 坐标轴名称
            axisLabel: { // 坐标轴刻度标签的相关设置
                color: '#999999', // 颜色
                fontSize: 14, // 字体
            },
            splitLine: { // 坐标轴在 grid 区域中的分隔线
                show: true, // 是否显示分隔线。
                lineStyle: { // 分隔线的样式——属性有:{ color , width , type , dashOffset , cap , join , miterLimit , shadowBlur , shadowColor , shadowOffsetX , shadowOffsetY , opacity }
                    color: '#D9DFE2', // 颜色
                    type: 'dashed', // 类别 'solid' 、 'dashed' 、 'dotted'
                },
            },
        },
        //图表与容器的位置关系
        grid: {
            left: '5%',   // 与容器左侧的距离
            right: '3%', // 与容器右侧的距离
            top: '19%',   // 与容器顶部的距离
            bottom: '15%', // 与容器底部的距离
        },
        tooltip: { // 提示框组件
            /*
                item: 数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用。
                axis: 坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用。
                none: 什么都不触发
            */
            trigger: 'axis', // 触发类型
            showDelay: 0, // 延时展示时间
            axisPointer: { // 坐标轴指示器配置项 —— 具体可以自行尝试
                /*
                    line:直线指示器
                    shadow:阴影指示器
                    none:无指示器
                    cross:十字准星指示器
                */
                type: 'line', // 指示器类型
                lineStyle: { // 设置指示器样式
                    color: { // 设置渐变色
                        type: 'line',
                        x: 0,
                        y: 0,
                        x2: 1,
                        y2: 1,
                        colorStops: [{ // 0-1的渐变,可以自行尝试
                            offset: 0, color: 'rgba(82, 141, 251, 0.2)'
                        }, {
                            offset: 1, color: 'rgba(82, 141, 251, 0)'
                        }],
                    },
                    type: 'solid', // 设置实现
                    width: 40 // 线的宽度
                },
            }
        },
        dataZoom: [{  // 缩放
            show: false, // 是否展示
            type: 'slider', // 滑动条型数据区域缩放组件提供了数据缩略图显示
            startValue: 0, // 开始索引
            endValue: 6 // 结束索引
        }, {
            /*
                平移:在坐标系中滑动拖拽进行数据区域平移。
                缩放:
                    PC端:鼠标在坐标系范围内滚轮滚动(MAC触控板类同)
                    移动端:在移动端触屏上,支持两指滑动缩放。
            */
            type: 'inside'
        }],
        series: [
            {
                name: '平均统计时间', // 系列名称
                type: 'bar', // 类别
                barWidth: 16, // 柱条的宽度,不设时自适应
                label: {  // 图形上的文本标签,可用于说明图形的一些数据信息
                    show: true, // 是否显示标签。
                    position: 'top', // 显示位置
                    color: '#666666', // 颜色
                    zlevel: 4 // 用于分层使用
                },
                itemStyle: { // 图形样式
                    normal: { // 自定义渐变颜色
                        color: (params) => ({
                            type: 'linear',
                            x: 0,
                            y: 1,
                            x2: 0,
                            y2: 0,
                            colorStops: [
                                {
                                    offset: 0,
                                    color: '#5A93FC',
                                },
                                {
                                    offset: 1,
                                    color: '#97C5FF',
                                },
                            ]
                        })
                    }
                },
                data: yData, // data数据
            }
        ]
    };
    // 该函数为绑定了个点击事件
    const zoomSize = 7;
    handlerChart.on('click', function (params) {
        // 通过计算获取周围的值
        handlerChart.dispatchAction({
            type: 'dataZoom',
            startValue: xData[Math.max(params.dataIndex - zoomSize / 2, 0)],
            endValue:
                xData[Math.min(params.dataIndex + zoomSize / 2, yData.length - 1)]
        });
    });
    // 渲染echarts图标
    handlerOption && handlerChart.setOption(handlerOption)
    // 监听窗口发生变化,重新渲染页面
    handlerChart.resize()
    window.addEventListener('resize', () => {
        handlerChart.resize()
    })
</script>

标签:缩放,color,渐变色,坐标轴,柱状图,type,echarts
From: https://blog.csdn.net/qq_45796592/article/details/136736637

相关文章

  • lc84 柱状图中最大的矩形
    给定数组H[n],表示柱状图中各个柱子的高度,每个柱子彼此相邻,且宽度为1。求该柱状图中,能够勾勒出来的矩形的最大面积。1<=n<=1e5;0<=H[i]<=1e4枚举每个柱子作为最短时能得到的最大矩形,尽量往两边延伸,取最小值即为答案。classSolution{public:intlargestRectangleArea(v......
  • 代码随想录算法训练营第六十天 | 单调栈 柱状图中最大的矩形 完结撒花
    目录柱状图中最大的矩形LeetCode84.柱状图中最大的矩形柱状图中最大的矩形双指针解法本题要记录记录每个柱子左边第一个小于该柱子的下标,而不是左边第一个小于该柱子的高度。在寻找的过程中使用了whileclassSolution{publicintlargestRectangleArea(in......
  • 图片超过容器溢出的几种解决方法(实现图片缩放)
    网页插入图片的两种常见应用场景在网页编写,我们经常会插入图片来优化网页整体结构,增强用户体验感,在插入图片时,我们会有两种比较常见的应用场景,一种就是使用background-image属性插入背景图片,还有一种是使用img标签插入图片。使用background-image属性插入背景图片当插入......
  • QT 自定义QGraphicsItem 缩放后旋转 图形出现漂移问题
    实现自定义QGraphicsItem缩放和旋转时,遇到了这样一个问题:将item旋转一个角度,然后拖拽放大,再次进行旋转时图像会发生漂移。原本以为是放大后中心点位置没有改变,导致旋转时以原中心的旋转出现了偏移,但是重新设置旋转中心setTransformOriginPoint(rect.center());并没有起作用,图像......
  • 微信小程序开发:调用人像动漫化接口前先限制并缩放图片尺寸
    上文说到我们在调用人像动漫化接口之前先将人像图片做了增强,但是用户自己上传的图片可能像素会很大,会超过2000*2000,因为人像动漫化接口限制,图片大小不能超过2000*2000: 只有阿里云有这个限制,腾讯云的限制是图片大小不能超过5M: 只有阿里云的有限制: 所以我们需要用到......
  • C# 等比例缩放图片
    ///<summary>///等比例缩放图片///</summary>///<paramname="bitmap">图片</param>///<paramname="destHeight">高度</param>///<paramname="destWidth">宽度</param>///<returns>&l......
  • R:相对丰度堆叠柱状图
    #清空当前环境中的所有对象rm(list=ls())setwd("C:\\Users\\Administrator\\Desktop\\新建文件夹\\Stackedbarchart")#设置工作目录library(ggplot2)#用于绘图library(ggalluvial)#用于绘制柱状图背后的条带library(grid)#用于访问unit函数ra<-as.matrix(......
  • powerpoint:缩放定位动画
    一,幻灯片缩放定位插入->缩放定位->幻灯片缩放定位:在弹出窗口中,选中目标幻灯片,然后点插入按钮:插入成功:放映时退出:按键盘上的向上箭头或点击幻灯片底部的向上箭头,即可回到原幻灯片页面,如按空格或向右键箭头,则会按目标幻灯片所在位置向后播放:说明:刘宏缔的架构森林......
  • 【HarmonyOS】Button按钮设置带有渐变色的背景图片无效
    ​【关键字】Button、渐变色、背景图片、backgroundImage 【问题描述】在为Button组件设置背景图片时未生效,这里准备的背景图片是渐变色的,当在代码中设置完成之后,发现按钮并没有像预想的那样变成渐变色,代码如下:​效果是这样的:​这也太奇怪了,难道是Button按钮的背景图片不......
  • 调整window下qt界面的缩放比例为自适应
    原因:QtCreator的缩放策略是四舍五入,只能缩放到1或2,而不是1.5,就比如系统缩放为150%,qt界面则会被缩放为200%解决办法:Linux下:exportQT_SCALE_FACTOR_ROUNDING_POLICY=PassThrough1.这行代码是环境变量设置的一部分,用于指定QT应用程序的缩放因子舍入策略。QT_SCALE_FACTOR......