echarts使用技巧(一)echarts的图表自适应resize问题、单选、缩放等
这些东西要是有精力和时间可以通读echarts文档,里面都有配置详细介绍。该博客只是把自己使用echarts遇到的问题记录下,并不全,加深印象,抛砖引玉而已,完整学习的请移步官方文档
1、legend设置单选
legend: {
data:['db block gets', 'consistent gets'],
selectedMode: 'single',
},
修改图例legend颜色,定义color数组,对应图例即可
color:['#48cda6','#fd87ab','#11abff','#ffdf33','#968ade'], //手动设置每个图例的颜色
legend: { //图例组件
right:, //图例组件离右边的距离
orient : 'vertical', //布局 纵向布局
width:, //图行例组件的宽度,默认自适应
x : 'right', //图例显示在右边
itemWidth:, //图例标记的图形宽度
itemHeight:, //图例标记的图形高度
data:['30%','10%','15%','20%','25%'],
textStyle:{ //图例文字的样式
color:'#333',
fontSize:
}
},
2、添加缩放滚动
加上dataZoom配置
dataZoom: [
{
show: true,
realtime: true,
start: ,
end:
},
{
type: 'inside',
realtime: true,
start: ,
end:
}
],
需要配合grid配置给dataZoom留出底部位置
也可以将show设置为false就不会显示那个滚动图,但是依然有滚动效果
grid: {
top: ,
bottom:
},
3、视图里面添加多个线条:在series数组里面继续加对象即可
series: [
{
name:'db block gets',
type:'line',
xAxisIndex: ,//加这个dataZoom对该对象不起作用,需要去掉这个属性
smooth: true,//代表平滑曲线,如需要折线,则去掉即可
data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
},
{
name:'consistent gets',
type:'line',
smooth: true,
data: [3.9, 5.9, 11.1, 18.7, 48.3, 69.2, 231.6, 46.6, 55.4, 18.4, 10.3, 0.7]
}
]
4、视图里面加阴影提示:tooltip,提示框组件
show,默认true,是否显示提示框组件
trigger,触发类型,item、axis、none,当为none的时候代表什么都不触发,就不会显示提示框
axisPointer,坐标轴指示器配置项,实际上坐标轴指示器的全部功能,都可以通过轴上的 axisPointer 配置项完成
label属性加formatter函数,可以格式化提示框显示内容
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label:{
formatter: function (params) {
return '快照时间:' + params.value;
}
}
}
},
5、雷达图添加阴影提示
series: [
{
type: 'radar',
tooltip: {
trigger: 'item'
},
itemStyle: {normal: {areaStyle: {type: 'default'}}},
data: [
{
value: this.radarValues,
name: '指标值'
}
]
}
]
6、一般echarts里面配色都是默认的,如果需要修改,就加上 color:[]配置项 ,这里也推荐一个取色器,很好用Pipette
7、stackedBar图形配置
{
name: '表使用比例',
type: 'bar',
stack: '总量',//代表叠加的形态,如果去掉这个,该条就会单独出来
label: { //就是每条目上会显示数字,去掉label属性就不显示
normal: {
show: true,
position: 'insideRight'
}
},
data: [, , , , ]
},
8、legrend的data数组里面的内容必须与series配置里面对象的name完全一样,否则会不显示。所以当你legrend不显示的时候,一定是这里没对应上,修改即可。
9、echarts的图表自适应,resize问题
echarts官网的实例都具有响应式功能,确实不是单纯的宽度改变,是每次调整后图表是重新绘制。猜想echart源码里应该有resize这个API,打开调试器,打开echart源码,Ctrl+F,果然找到了

再看官方文档

echart图表本身是提供了一个resize的函数的。
于是当浏览器发生resize事件的时候,让其触发echart的resize事件,重绘canvas。

用window.onresize = myChart.resize; 可以完成自适应,就是把window的onresize事件赋值为echart的resize事件
当然这是单个图表的情况,要是多个图表,发现会不起作用。
多个图表可以使用addEventListener
window.addEventListener("resize", () => {
this.myChart.resize();
this.myChart2.resize();
this.myChart3.resize();
});
在vue组件上就可以直接单个组件添加进事件列表
myLogLine.setOption(option);
window.addEventListener("resize", () => { myLogLine.resize();}); myLine.setOption(option);
window.addEventListener("resize", () => { myLine.resize();});
echarts使用技巧(一)echarts的图表自适应resize问题、单选、缩放等的更多相关文章
- Angular echarts图表自适应屏幕指令
关于echarts图表自适应问题 一.引入js文件 1. 在html页面引入angular.min.js文件 2. 在html页面引入echarts.min.js文件 3. 在html页面引入app. ...
- Echarts一个页面加载多个图表及图表自适应
Echarts一个页面加载多个图表及图表自适应 模块化加载 //入口 require.config({ paths: { echarts: 'http://echarts.baidu.com/buil ...
- echarts图表自适应盒子的大小(盒子的大小是动态改变的),大到需要全屏展示
项目中用到了echarts,并且页面是自适应的,且页面中有一个[放大.缩小]功能,因此图表还需要根据盒子的大小来变化. 即:两个需求,如下: ① 图表根据窗口的大小自适应 ② 图表根据所在盒子的大小自 ...
- echarts 图表自适应外部盒子大小
项目中用到了echarts,由于页面是自适应的,还得兼容移动, 因此图表还需要根据盒子的大小来变化. 自适应窗口及盒子大小 页面中有一个[放大.缩小]功能,及全屏展示和预览图表 窗口自适应 let m ...
- eCharts 多个图表自适应窗口大小
单个图表自适应页面窗口只需要在创建图表节点后面添加一句代码就可以了: window.onresize = myChart.resize; 多图表要自适应页面,创建图表节点后面添加事件,并在事件函数里面 ...
- ECharts(Enterprise Charts 商业产品图表库)初识
一.简介 大数据时代,重新定义图表的时候到了,所以随之ECharts就随之出现了. ECharts(Enterprise Charts 商业产品图表库) 是基于Canvas的,纯Javascript ...
- ECharts学习(1)--简单图表的绘制
1.获取ECharts 官网 下载:http://echarts.baidu.com/download.html 2.在html页面中引入ECharts文件 <!DOCTYPE html> ...
- vue引入echarts、找不到的图表引入方法、图表中的点击事件
1.在vue-cli项目中添加webpack配置,本文引入的最新版本.在 3.1.1 版本之前 ECharts 在 npm 上的 package 是非官方维护的,从 3.1.1 开始由官方 EFE 维 ...
- ECharts学习总结(三):ECharts图表对象的初始化(init)详解以及注意事项
一.相关js文件的引入 这里我们采用标签式引入文件的方式,我们引入两个js文件,一个是esl.js文件和一个echarts.js. <script src="js/esl.js&quo ...
随机推荐
- 【C#】线程问题
多线程编程对很多程序员来说并不容易,在启动访问相同数据的多个线程时,会间歇性地遇到难以发现的问题.如果使用任务.并行LINQ或Parallel类,也会遇到这些问题.为了避免这一系列问题,开发程序中必须 ...
- LibreOJ#143 质数判定 [Miller_Rabin]
题目传送门 质数判定 题目描述 判定输入的数是不是质数. 输入格式 若干行,一行一个数 x. 行数不超过 $1.5\times 10^4$ 输出格式 对于输入的每一行,如果 x是质数输出一行 Y,否则 ...
- 编写WPF程序,完成弹框打印和直接打印
弹框打印 PrintDialog pd = new PrintDialog(); pd.ShowDialog(); //↓第一个参数是StackPanel控件里面放一个label放打印的文字 pd.P ...
- [ARC055D]隠された等差数列
题意:对一个等差数列$a_i=A+Bi(0\leq i\leq n-1)$和非负整数$x$,把$a_i$的$10^x$位拿出来可以写成一个字符集为$0\cdots9$的字符串,现在给定这个字符串$d_ ...
- 20162327WJH Android开发程序设计实验报告
学号 20162327 <程序设计与数据结结构>Android开发程序设计实验报告 实验一:Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第 ...
- hibernate核心及常用技术
一.hibernate介绍 1.hibernate概述 hibernate是轻量级Java EE持久层解决方案,管理java类到数据库表的映射(ORM:对象关系型数据映射),并提供数据查询获取的方法. ...
- LOJ2758 年轮蛋糕
JOI 君马上要和妹妹 JOI 子和 JOI 美一起吃小吃.今天的小吃是他们三个人都很喜欢的年轮蛋糕. 年轮蛋糕是像下图一样呈圆筒形的蛋糕.为了把蛋糕分给三个人,JOI 君必须沿着半径方向切 3 刀, ...
- VK Cup 2016 - Qualification Round 1 (Russian-Speaking Only, for VK Cup teams) D. Running with Obstacles 贪心
D. Running with Obstacles 题目连接: http://www.codeforces.com/contest/637/problem/D Description A sports ...
- PAT甲级1003. Emergency
PAT甲级1003. Emergency 题意: 作为一个城市的紧急救援队长,你将得到一个你所在国家的特别地图.该地图显示了几条分散的城市,连接着一些道路.每个城市的救援队数量和任何一对城市之间的每条 ...
- 如何解决…has been modified since the precompiled header… was built的问题
如何解决…has been modified since the precompiled header… was built 的问题 xcode5.1在程序中报错: File '/Applicatio ...