关于echarts使用的常见问题总结

关于echarts使用的问题总结 1.legend图例不显示的问题: 在legend中的data为一个数组项,数组项通常为一个字符串,每一项需要对应一个系列的 name,如果数组项的值与name不相符则图例不会显示; 2.图表位置无法紧贴画布边缘的问题: 在grid绘图网格里,containLabel(grid 区域是否包含坐标轴的刻度标签,默认不包含)为true的情况下,无法使图表紧贴着画布显示,但可以防止标签标签长度动态变化时溢出容器或者覆盖其他组件,将containLabel设置为false即可解决;

grid:{
containLabel:false
}

3.反向坐标轴: 在echarts3中xAis和

yAis:{
  inverse:true  
}

新添加了inverse属性,在inverse为true的情况下执行反向坐标轴;

4.动态替换地图图表的方法: 在echarts3中由于地图精度的提高,不在内置地图数据可以在地图下载页面http://echarts.baidu.com/download-map.html 下载对应文件,按需求引用; 地图的geojson文件只包含了两层数据(国>省,省>市,市>区),如需全国所有省市地区的json文件请联系我; eCharts 中提供了两种格式的地图数据,一种是可以直接 script 标签引入的 js 文件,引入后会自动注册地图名字和数据。还有一种是 JSON 文件,需要通过 AJAX 异步加载后手动注册,我一般使用后者; 方法如下:

function mapCharts(name,id){
$.get('json路径/'+name+'.json', function (geoJson) {
echarts.registerMap(name, geoJson);
var chart = echarts.init(document.getElementById(id));
chart.setOption({
series: [{
type: 'map',
map: name
}]
});
});
};

5.柱状图的宽度问题: 如设计图给出柱状图指定宽度,直接指定series.barWidth柱状图的宽度(默认barWidth为自适应),自适应功能会失效,在小尺寸状态下柱状图宽度不会发生改变;

如不指定宽度,使用默认自适应会导致多条数据与单条数据宽度显示不一致,所以在设计图明确宽度的情况下,使用series.barMaxWidth(最大宽度)属性,来解决这一问题;

自适应多条数据的效果

自适应单条数据的效果

使用了最大高度的效果

6.部分情况下初始化图表失败的问题 在使用类似Bootstrap轮播图等使用display:none属性隐藏其他图片的插件时,这种情况下会导致echarts初始化时获取不到画布宽高,导致绘制图表失败; 如果不考虑ie9以下可考虑swiper3等使用overfllow:hidden属性隐藏多余图片的插件,如需兼容ie9以下可考虑swiper2(高度无法自适应),或者自己手写轮播图;

7.echarts图表响应式的问题 echarts提供了图表的resize方法,使用时可在setoption后添加如下代码:

$(window).on('resize',function(){
myChart.resize();
});

8.图表判断返回颜色 echarts的color属性提供了function方法

color: function(params) {
//颜色数组
var colorList = [
‘#C1232B‘,‘#B5C334‘,‘#FCCE10‘,‘#E87C25‘,‘#27727B‘,
‘#FE8463‘,‘#9BCA63‘,‘#FAD860‘,‘#F3A43B‘,‘#60C0DD‘,
‘#D7504B‘,‘#C6E579‘,‘#F4E001‘,‘#F0805A‘,‘#26C0C0‘
];
//判断的代码

//根据条件返回相应颜色
return colorList[params.dataIndex]
}

9.使用formatter方法格式化文本(用于在label标签,tolltip等显示信息需要自定义时) legend图例下的使用 使用字符串模板,模板变量为图例名称 {name}

formatter: 'Legend {name}'
使用回调函数
formatter: function (name) {
return 'Legend ' + name;
};

label下的使用 主要是对params(一个对象包含data数据)参数的返回

formatter: function (params) {
return params.xxx;
};

10.tolltip里添加小标识(圆点之类的)的方法 在formatter里返回时拼接html元素;

formatter: function(params) {
if(params.data.value) {
if(params.data.value.length > 0) {
var str = '';
for(var i = 0; i < params.data.value.length; i++) {
if(str !== '') {
str += '</br>' + '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:' + color[i] + '"></span>';
}
str += params.data.value[i] + '人';
}
return params.name + '</br>' + '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:' + color[0] + '"></span>' + str;
}
}
return params.data.name + ':' + (params.data.value ? params.data.value : '--');
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏菜鸟计划

我的HTML总结之常用基础便签

HTML:是Hyper Text Markup Language(超级文本标记语言)的缩写,HTML不是一种程序,只是一种控制网页中数据显示的标识语言。 HTM...

3415
来自专栏IMWeb前端团队

CSS3 object-fit和object-position

本文作者:IMWeb 郭明慧 原文出处:IMWeb社区 未经同意,禁止转载 最近一直忙于将JavaScript学习的笔记整理成电子书,也没什么空闲时间...

1855
来自专栏Google Dart

AngularDart Material Design 菜单 顶

材质菜单基于MenuModel对象呈现菜单。 此菜单包含material-popup中的material-list和material-button,其文本或图标...

692
来自专栏阮一峰的网络日志

React 测试入门教程

越来越多的人,使用React开发Web应用。它的测试就成了一个大问题。 React的组件结构和JSX语法,不适用传统的测试工具,必须有新的测试方法和工具。 本文...

3314
来自专栏GreenLeaves

Js框架设计之DomReady

一、在介绍DomReady之前,先了解下相关的知识 1、HTML是一种标记语言,告诉我们这页面里面有什么内容,但是行为交互则要通过DOM操作来实现,但是注意:不...

2086
来自专栏李家的小酒馆

struts2面试整理

struts2的工作原理 客户端发送请求 经过一系列的过滤器 FilterDispatcher通过ActionMapper来决定这个REquest需要调用的Ac...

1810
来自专栏前端儿

JS 跨域问题常见的五种解决方式

要理解跨域问题,就先理解好概念。跨域问题是由于javascript语言安全限制中的同源策略造成的.

890
来自专栏前端真相

HTML

1828
来自专栏前端新视界

Vue.js 系列教程 2:组件,Props,Slots

原文:intro-to-vue-2-components-props-slots 译者:nzbin 这是关于 JavaScript 框架 Vue.js 五个...

21110
来自专栏非著名程序员

基础篇章:关于 React Native 之 Navigator 组件的讲解

(友情提示:RN学习,从最基础的开始,大家不要嫌弃太基础,会的同学请自行略过,希望不要耽误已经会的同学的宝贵时间) 今天我们来讲讲Navigator这个小家伙,...

1747

扫码关注云+社区