当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>

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

  1. JavaScript解决select下拉框中的内容太长显示不全的问题

    JavaScript解决select下拉框中的内容太长显示不全的问题 1.说明 有些情况下,select下拉框的内容过长,导致部分看不见: 现在通过鼠标事件,让下拉框中的内容显示完全 2.实现源码 & ...

  2. Springmvc+Hibernate在Eclipse启动Tomcat需要很长时间的解决方法

    最近在学习SpringMvc开发,有一个提问困扰了很久,就是在Eclipse启动Tomcat需要很长时间,大概要1分多钟. 启动日志: 九月 08, 2016 8:59:01 下午 org.apach ...

  3. echarts x轴文字显示不全解决办法

    标题:echarts x轴文字显示不全(xAxis文字倾斜比较全面的3种做法值得推荐):http://blog.csdn.net/kebi007/article/details/68488694

  4. css实现文字过长显示省略号的方法

    <div class="title">当对象内文本溢出时显示省略标记</div> 这是一个例子,其实我们只需要显示如下长度: css实现网页中文字过长截取. ...

  5. Updating Homebrew... 长时间不动解决方法

    确保你已安装Homebrew 依次输入下面的命令(注意:不要管重置部分的命令,这里原作者贴出来.我也贴出来是以防需要重置的时候有参考操作命令) 替换brew.git: cd "$(brew ...

  6. java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称而且未指定默认驱动程序解决方法

    开发程序须要登录功能 .就不想用大数据库.直接用java连接access.     在自己机器上一切正常,  url直连 和配置数据源都没有问题.  公布到windows server2008 上 , ...

  7. group_concat用法以及字符串太长显示不全

    由于group_concat默认的长度是1024,所以要将最大长度修改 首先执行 SET SESSION group_concat_max_len = 10240;#一次查询有效 然后再进行拼接 se ...

  8. Echarts 曲线数少于图例数解决方法

    在上一篇文章 Echarts 多曲线“断点”问题解决方法 中说到了Angular 项目中要使用 Echarts 的方法. 说明了自己解决当“每一条曲线的横坐标不相同”时,在各条曲线上,它们的值采用数组 ...

  9. MATLAB 画柱状图(/直方图)修改横坐标名称并使其横着显示

    使用MATLAB 画柱状图 ,即bar (x,y),其横坐标是默认 1.2.3.4.……的 % --v1 y1=[asum1,asum2,asum3,asum4,asum5,asum6,asum7,a ...

随机推荐

  1. Python---进阶---捕获异常

    一.编写一个计算减法的方法,当第一个数小于第二个数时,抛出“被减数不能小于减数”的异常 ------------------------------------------------- def ji ...

  2. java初学第一天

    public class HellowWorld{ public static void main(String[] args){ System.out.println("jiuxu&quo ...

  3. 【NOIP2013模拟】导弹防御塔

    题目 Freda的城堡-- "Freda,城堡外发现了一些入侵者!" "喵...刚刚探究完了城堡建设的方案数,我要歇一会儿嘛lala~" "可是入侵者 ...

  4. 用PL/SQL登录显示 “无法解析指定标识符”

    错误现象: 为了看表空间是否完整建好,打开相应的连接工具plsql,但是打不开,显示  “无法解析指定标识符”: 处理方式: 首先点击取消直接登录,打开工具---->首选项,在路径上看指定好没有 ...

  5. wxy和zdy眼中的水题 地精部落 dp

    题目描述 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi,其中Hi是1到 ...

  6. POJ 1363 Rails(栈)

    题目代号:POJ 1363 题目链接:http://poj.org/problem?id=1363 题目原题: Rails Time Limit: 1000MS   Memory Limit: 100 ...

  7. #1024-JSP结构

    JSP 结构 网络服务器需要一个JSP引擎,也就是一个容器来处理JSP页面.容器负责截获对JSP页面的请求. JSP容器与Web服务器协同合作,为JSP的正常运行提供必要的运行环境和其他服务,并且能够 ...

  8. 记录redis 存放JSON字符串,在并发操作时读-改-写问题

    问题描述: 这里涉及到的问题其实就是普遍的读-改-写,redis可以保证每个操作的原子性,但是无法保证多个操作的原子性,解决的方法可以使用redis提供的multi和watch命令,具体使用如下:1. ...

  9. [BZOJ2225][SPOJ2371]LIS2 - Another Longest Increasing Subsequence Problem:CDQ分治+树状数组+DP

    分析 这回试了一下三级标题,不知道效果怎么样? 回到正题,二维最长上升子序列......嗯,我会树套树. 考虑\(CDQ\)分治,算法流程: 先递归进入左子区间. 将左,右子区间按\(x\)排序. 归 ...

  10. hdu3714 Error Curves

    题目: Error Curves Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...