echarts柱状图个数多,横坐标名称过长显示不全解决方法

2023-10-30

当echarts柱状图个数多,横坐标名称过长时横坐标名称显示不全,网上并没有搜到太好的方法,于是自己加工了下,将横坐标名称显示前六位,当鼠标放到上面的时候显示全名,下面是示例代码,可以直接拷贝测试

 

 

 

 

 

 

 

 

 

 


代码解读

 HTML:

<div class="mychartBlock" style="width:33%;float:left;position:relative;border-right:5px solid #FAFAFA">
    <div class="pie1xWrap" style="width:100%;height:60px;margin:0 auto;position:absolute;bottom:-6px;"></div>
    <div class="pie1xLine" style="width:100%;height:10px;margin:0 auto;position:absolute;bottom:43px;z-index:10000;"></div>
    <div id="main" style="width:98%;min-height:300px;margin:0px auto 0;z-index:1000;"></div>
</div>

 

示例代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
    <script src="https://cdn.bootcss.com/echarts/3.6.2/echarts.min.js"></script>
</head>
<body>
<div class="mychartBlock" style="width:33%;float:left;position:relative;border-right:5px solid #FAFAFA">
    <div class="pie1xWrap" style="width:100%;height:60px;margin:0 auto;position:absolute;bottom:-6px;"></div>
    <div class="pie1xLine" style="width:100%;height:10px;margin:0 auto;position:absolute;bottom:43px;z-index:10000;"></div>
    <div id="main" style="width:98%;min-height:300px;margin:0px auto 0;z-index:1000;"></div>
</div>
<div class="tip" style="display:none;height:30px;line-height:30px;padding:0 5px;position:absolute;background:rgba(0,0,0,0.6);border-radius:3px;color:#fff;z-index:10000;"></div>
<script>
    var indexdata=[];
    var dataAll=['HTML5与CSS3权威指南', 'JavaScript高级程序设计', 'JavaScript DOM编程艺术', '超实用的jQuery代码段', '锋利的jQuery', '深入理解Bootstrap', 'AngularJS权威教程'];
    var myChart=echarts.init(document.getElementById('main'));
    var option = {
        title: {
            text: '前端书籍使用人数',
            subtext:'',
            x:'center'
        },
        tooltip: {
            trigger: 'axis',
            axisPointer:{
                clickable:true,
                type : 'line',        // 默认为直线,可选为:'line' | 'shadow'
                lineStyle:{
                    color:'rgba(0,0,0,0)',
                }
            },
            formatter: function (params) {
                var res="";
                for (var i = 0, l = params.length; i < l; i++) {
                    var index1=params[i].dataIndex;
                    res =dataAll[index1]+"<br>"+ (option.title.text).replace("(%)","")+' : ' + params[i].value+"%";
                }
                return res;
            }
        },
        legend: {
            data: []
        },
         grid: {
            left: '23',
            right: '40',
            bottom: '28',
            top: '65',
            containLabel: true
        },
        yAxis: {
            name:"数量",
            nameGap:"8",
            type: 'value',
            min:0,
        },
        xAxis: {
            type: 'category',
            name: '书名',
            nameGap:8,
            triggerEvent:true,
            axisLabel:{
                clickable:true,
                interval:0,
                rotate:30
            },
            data : [],
            splitLine: {
                show: true,
            }
        },
        series: [
            {
                type: 'bar',
                name: '',
                data:[10, 52, 200, 334, 390, 330, 220],
                barMinHeight: 15,
                barWidth:'30%',
                barMaxWidth:25,
                label:{
                    normal:{
                        show:true,
                        position:'top',
                        textStyle: {
                             color: '#000',
                        }
                    }
                }
            },
        ]
    };
    indexdata=[];
    for(var i=0;i<dataAll.length;i++){
        var obj=[];
        obj.push(i);
        obj.push(dataAll[i]);
        indexdata.push(obj);
        obj=[];
        option.xAxis.data[i]=dataAll[i].substring(0,6);
    }
    myChart.setOption(option);
    myChart.on("mousemove",function(params){
        if(params.componentType=="xAxis" && params.targetType=="axisLabel"){
            for(var i=0;i<indexdata.length;i++){
                var xAxisIndex=params.event.target.anid.split("_")[1];
                if(indexdata[i][0]==xAxisIndex){
                    Manufactermove=indexdata[i][1];
                    jQuery(".tip").html(indexdata[i][1]);
                }
            }
            var obj=getMousePos(event);
            jQuery(".tip").show();
            jQuery(".tip").css("top",obj.y-40);
            jQuery(".tip").css("left",obj.x+5);
            jQuery(".tip").mouseover(function(){
                var obj=getMousePos(event);
                jQuery(".tip").css("display","");
                jQuery(".tip").css("top",obj.y-60);
                jQuery(".tip").css("left",obj.x+5);
            })
        }else{
            jQuery(".tip").css("display","none");
        }
    });
//获取鼠标位置
function getMousePos(event) {
    var e = event || window.event;
    var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
    var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
    var x = e.pageX || e.clientX + scrollX;
    var y = e.pageY || e.clientY + scrollY;
    //alert('x: ' + x + '\ny: ' + y);
    return { 'x': x, 'y': y };
}
jQuery(".pie1xWrap").unbind("mouseout");
    jQuery(".pie1xWrap").mouseout(function(){
        jQuery(".tip").css("display","none");
    });
    jQuery(".pie1xLine").unbind("mouseout");
    jQuery(".pie1xLine").mouseout(function(){
        jQuery(".tip").css("display","none");
    });
</script>
</body>
</html>

 

转载于:https://www.cnblogs.com/web520/p/6824404.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

echarts柱状图个数多,横坐标名称过长显示不全解决方法 的相关文章

  • 使用 JavaScript 移动页面上的按钮

    我的按钮可以移动 但奇怪的是 我无法弄清楚偏移是否有问题 我希望我的按钮随着鼠标光标移动 但现在它的移动方式不是我想要的 有时它会消失 另外 创建的新按钮是重叠的 我不知道如何解决这个问题并拥有更好的外观 var coorA var coo
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • Pandas Dataframe 中 bool 值的条件前向填充

    问题 如何转发 fill boolTruepandas 数据框中的值 如果是当天的第一个条目 True 到一天结束时 请参阅以下示例和所需的输出 Data import pandas as pd import numpy as np df
  • 如何计算特定字符在字符串中出现的次数

    我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • 使用 Google 日历源时如何禁用 FullCalendar 中的活动链接?

    我正在使用 FullCalendar 库从 Google 日历加载日历中的事件 不幸的是 事件添加到日历后 它们是可点击的 当您点击该活动时 您会自动重定向到 Google 日历页面以查看该特定活动 或者如果您有足够的访问权限 则可以直接对
  • LeafleteachLayer函数不会迭代所有Layer

    使用 GeoJSON 数据数组创建一些标记 getJSON GetLocationsServlet function data L geoJSON data onEachFeature onEachFeature addTo mymap G
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • 如何使用 JavaScript 或 jQuery 克隆 HTML 元素的样式对象?

    我正在尝试克隆元素的样式对象 这应该允许我在更改后重置所述元素的样式 例如 el style left 50px curr style left 50px Modify the elements style The cloned style
  • Google Maps API (v3) 添加/更新标记

    编辑 它现在可以工作 但如果用户不允许或没有基于位置的服务 则不会加载 请参阅 jsfiddle 示例接受的答案评论 我已经浏览了一些教程和问题 但我无法安静地理解正在发生的事情 或者在这种情况下 没有发生 当用户单击链接时 我正在加载地图
  • 使用 Jade 评估自定义 javascript 方法 (CircularJSON)

    我想通过 Jade 将一个对象解析为客户端 JavaScript 通常这会起作用 script var object JSON parse JSON stringify object but my object is circular ht
  • $resource.query 返回分割字符串(字符数组)而不是字符串

    我正在使用像下面这样的 Angular resource angular module app factory data function resource var Con resource api data update method P
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject
  • 将数组从 jquery ajax 传递到代码后面

    我必须将二维数组传递给在asp net网页代码后面编写的页面方法我有一个变量objList作为二维数组 我使用以下代码来实现此目的 但没有成功 并且未调用页面方法 脚本语言 function BindTable objList ajax u
  • 仅当显式选择行时才关闭 ui-bootstrap typeahead

    我创建了这个jsBin http jsbin com livuqafe 2 edit来证明我遇到的问题 如果您转到此处 请尝试输入 五 并继续 你的自然反应是输入 五 然后按 Tab 如果你想要 五百 你可以向下箭头一次 但是 在这种情况下
  • 使用velocity.js制作可拖动元素的动画

    我正在使用velocity js 为用户拖动的可拖动 SVG 元素设置动画 然而 velocity js 将先前的 mousemove 坐标排队并通过所有后续的 mousemove 坐标进行动画处理 我想要的是velocity js 不要对

随机推荐

  • 直流电机PID调节——P

    其实要用PID调节的话 最好是使用带有编码器的比较高端一点的直流减速电机 但是因为它价格有点贵 所以我们一般做智能小车就会选用普通的直流电机 但是普通的直流电机也是可以使用PID调节的 虽然它的效果没有带编码器得到直流减速电机的好 但是我们
  • 单片机检测脉冲个数c语言程序,C51单片机脉冲累加器(C语言程序)

    void timer0 void interrupt 1 using 1 switch count case 1 TH0 2700 pwm value 256 TL0 2700 pwm value 256 while 1 if pwm va
  • 分享个最佳的代码片段在线测试网站

    Its our pleasure to share best resources tools for web developers and designer Today we are 1 非常好的在线编译调试网站 https www onl
  • 10.网络爬虫—MongoDB详讲与实战

    网络爬虫 MongoDB详讲与实战 MongoDB MongoDB安装 创建数据目录 1 数据库操作 2 集合操作 3 文档操作 4 索引操作 5 聚合操作 6 备份与恢复 MongoDB增删改查 mongodb集合的增删改查 数据插入到表
  • 知识点记录-abase是什么

    Abase Abase是一套支持redis协议的分布式KV存储系统 是字节跳动自研的一套数据库系统 对在线业务发挥着核心作用 支持redis协议 高可用 低延迟 高扩展的kv存储 常用于redis的大容量持久化场景 为什么采用Abase r
  • 在react项目中调用百度地图API的BMap后报错解决方案

    我这里是使用了react typescript技术栈 在 public index html文件中引入百度地图项目的文件 就相当于是全局导入了 但是并不能直接使用相关的API 需要在使用的文件中这样声明一下 然后就可以直接使用了 const
  • stm32专题二十九:Flash 读写保护

    设置Flash的读写保护 其实就是操作内部Flash的选项字节 选项字节在内部Flash的主存储页之后 由于是Flash 不能像内存RAM一样随意写入 由于Flash的写入特性 只能将 1 写成 0 而如果要确保写入数据的绝对正确 则需要先
  • pytorch:nn.ReLU(inplace=True) 中的参数 inplane 的作用

    pytorch 的激活函数nn Relu 有一个参数 inplace 其作用是 该nn Relu 函数计算得到的输出是否更新传入的输出 正常情况下 一个卷积操作 首先经过卷积层 接着是正则化 Normalize 最后经过激活函数 而输入激活
  • Excel多行转置为一列

    原始数据如下 想把上述数据变成下边这个样子 面板模型数据录入需要用到下边这个形式的数据 步骤 1 先把所有原始数据转置 2 再在153 19下的单元格输入 C2 输入完之后 16 85就会在153 19下的单元格处了 再先横向 后纵向下拉即
  • 解决IDEA安装Python插件,下载失败的方法

    一 问题 通过file gt settings gt Plugins 安装python时 会提示下载失败 可以采用以下方法解决 二 解决办法 1 在help about中查看IDEA版本 作者的是181 4445 2 在https plug
  • Java架构直通车——结合源码理解PageHelper

    PageHelper实现方式 PageHelper首先将前端传递的参数保存到page这个对象中 接着将page的副本存放入ThreadLoacl中 这样可以保证分页的时候 参数互不影响 接着利用了mybatis提供的拦截器 取得Thread
  • XXL-JOB任务分片

    文章目录 任务类型 任务配置 路由策略 阻塞处理策略 单个任务和集群任务 单机多任务分片 集群分片 任务类型 单个任务 一个任务实例便可完成 单机单任务 单机模式下任何路由模式都只有一个实例执行 集群单任务 由路由策略 广播模式除外 选择其
  • 内网穿透-外远程连接中的RabbitMQ服务

    文章目录 前言 1 安装erlang 语言 2 安装rabbitMQ 3 内网穿透 3 1 安装cpolar内网穿透 支持一键自动安装脚本 3 2 创建HTTP隧道 4 公网远程连接 5 固定公网TCP地址 5 1 保留一个固定的公网TCP
  • GIS项目研发总结

    海珠区慢性防治系统 项目研发阶段性总结 作者 华境聪 本次任务完成时间 2018年12月22日 2019年1月16日 完成模块功能 前台 图层管理 医院 社康 药店 后台 修改资料 密码 数据管理 一 功能实现 图层管理主要包括医院 社康
  • Strtus2漏洞复现

    文章目录 安装docker 第一步 安装docker 第二步 检查docker安装是否成功 第三步 安装docker compose 第四步 下载漏洞库 第五步 启动 关闭漏洞 漏洞列表 S2 048远程执行代码漏洞 漏洞简介 漏洞原理 影
  • MyBatis整体架构分析:mysql跳过错误执行日志

    缓存维护方案一 如果是一读 线程B 一写 线程A 操作 先操作缓存 再操作数据库 流程图如下所示 1 线程A发起一个写操作 第一步del cache 2 线程A第二步写入新数据到DB 3 线程B发起一个读操作 cache miss缓存失效了
  • python retrying retry

    在写业务时 有个业务需要在return某种情况下 进行重试 代码类似于下面 from retrying import retry def verify self try return self verify 1 except RetryEr
  • Java学习笔记(十三)

    面向对象和面向过程的区别 面向过程 优点 性能比面向对象高 因为类调用时需要实例化 开销比较大 比较消耗 资源 比如单片机 嵌入式开发 Linux Unix 等一般采用面向过程开发 性能是最重要的因素 缺点 没有面向对象易维护 易复用 易扩
  • [网络安全]upload-labs Pass-02 解题详析

    读者可参考 订阅专栏 Upload Labs靶场攻防实战 Antsword蚁剑 该题涉及蚁剑工具的利用 操作可参考 网络安全 AntSword 蚁剑 实战解题详析 入门 网络安全 DVWA之File Upload AntSword 蚁剑 攻
  • echarts柱状图个数多,横坐标名称过长显示不全解决方法

    当echarts柱状图个数多 横坐标名称过长时横坐标名称显示不全 网上并没有搜到太好的方法 于是自己加工了下 将横坐标名称显示前六位 当鼠标放到上面的时候显示全名 下面是示例代码 可以直接拷贝测试 代码解读 HTML div class m