1、前景:在echarts中设置多个Y轴的时候,如果不想Y轴的折线有交叉,则需要考虑一下这个方案:
每一条Y轴分为一个区域,使得每一个Y轴都是一个独立的区域,举个例子:四条Y轴,那就是每条Y轴占四分一。但是要怎么实现呢?
先看图:
实现前:折线之间是有交叉的2、实现后:每条折线之间分为区域去显示,毫无交集

3、实现的方法:利用echarts 官方提供的max和min函数,max、min为echart配置option的中的函数,_this是为了解决指向问题

let yAxisList = ['电流','电压','容量','温度'];
let ySettingColorlist = ["#995055", "#55BFC0", "#639ADE", "#5EBE67"];
let _this = this;
let n=0;yAxisList.forEach((res, i) => {let datas = {type: "value",name:  res, //设置Y轴单位position:yAxisList.length == 2? n < 1? "left": "right": n < 2? "left": "right", //判断Y轴的数量scale: true,offset:yAxisList.length == 2? 0: n > 1? parseInt((n - 2) * 50): parseInt(n * 50),axisLine: {show: true,lineStyle: {color: ySettingColorlist[n],},},splitLine: {show: true,},axisTick: {show: true,},max:function(value){let yAxisLists = ['电流','电压','容量','温度'];let lengs = yAxisLists .length;let maxs = Number(value.max);let mins = Number(value.min);if(i==0){// 3为3个区域/**第一条Y轴 */let valueNew = maxs>0?((maxs - mins)*3+maxs):(maxs*3+mins);return lengs==1?null: maxs==0?mins==0?4: (maxs - mins*3): _this.getFloat(valueNew,6);}else if(i==1){/**第二条Y轴 *///第二区域站4分2,也就是最大值需要占3分,最小值需要占一份//第二区域站4分2,也就是最大值需要占3分,最小值需要占一份let valueNew = maxs>0?((maxs - mins)*2+maxs):((maxs-mins)*2+maxs);return maxs==0?mins==0?3: (maxs - mins*2): _this.getFloat(valueNew,6);}else if(i==2){/**第三条Y轴 */let newView = (Number(value.min) - (Number(value.max) - Number(value.min))*2);return  value.min == 0?value.max ==0?-2:_this.getFloat(newView,6):_this.getFloat(newView,6);}else {//第四条Y轴// let newValue  = value.min - ((value.max-value.min)*lengs*(i+1))let newView = (Number(value.min) - (Number(value.max) - Number(value.min))*3);return  value.min == 0?value.max ==0?-3:_this.getFloat(newView,6):_this.getFloat(newView,6);}},min:function(value){let yAxisLists = ['电流','电压','容量','温度'];let lengs = yAxisList.length;if(i==0){/**第一条Y轴 */return lengs==1?null: value.min == 0?0:_this.getFloat(value.min,6);}else if(i==1){/**第二条Y轴 */let newView = (Number(value.min) - (Number(value.max) - Number(value.min)));return  value.min == 0?value.max ==0 ?-1:_this.getFloat(newView,6):_this.getFloat(newView,6);}else if(i==2){/**第三条Y轴 */let newView = (Number(value.min) - (Number(value.max) - Number(value.min))*2);return  value.min == 0?value.max ==0?-2:_this.getFloat(newView,6):_this.getFloat(newView,6);}else {//第四条Y轴// let newValue  = value.min - ((value.max-value.min)*lengs*(i+1))let newView = (Number(value.min) - (Number(value.max) - Number(value.min))*3);return  value.min == 0?value.max ==0?-3:_this.getFloat(newView,6):_this.getFloat(newView,6);}},axisLabel: {interval: 0,},}option.yAxis.push(datas); //option 为echart的option配置//YMap["y" + (n + 1)] = n;// colorMap["y" + (n + 1)] = ySettingColorlist[n];n++;});

4、methods:

getFloat(num,n) {n = n ? parseInt(n) : 0;if(n <= 0) {return Math.round(num);}num = Math.round(num * Math.pow(10, n)) / Math.pow(10, n); //四舍五入num = Number(num).toFixed(n); //补足位数return num;},

echarts 折线图多Y轴,每一条Y轴独属于一个区域,折线之间不交集。相关推荐

  1. Python使用matplotlib函数subplot可视化多个不同颜色的折线图、使用set_major_formatter函数自定义设置y轴数值标签格式为百分比

    Python使用matplotlib函数subplot可视化多个不同颜色的折线图.使用set_major_formatter函数自定义设置y轴数值标签格式为百分比 目录

  2. JAVA中柱状图和折线图组合,分组折线图、柱状图实现(多条折线图、柱状图同时显示)实现方式...

    使用MPAndroidChartLibery实现分组折线图和柱状图. 一.实现步骤:  1.同样需要 引入mpandroidchartlibrary-2-1-6.jar :下载地址及介绍见Androi ...

  3. echarts折线图常见配置项 分割线虚线样式 显示y轴符号 设置间隔

    option = {xAxis: {type: 'category',data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']},yAxis: { ...

  4. pyqt5,Qchart画折线图,设定多个不同刻度的Y轴,修改自定义折线图的坐标轴,改变折线图的底色

    就是这些自己遇到的需求: 如有不对,请大佬不吝赐教. Qchart设定多个不同刻度的Y轴 修改自定义折线图的坐标轴 改变折线图的底色,底色透明 鼠标悬停事件 import datetime impor ...

  5. 分组折线图、柱状图实现(多条折线图、柱状图同时显示)实现方式

    使用MPAndroidChartLibery实现分组折线图和柱状图. 一.实现步骤: 1.同样需要 引入mpandroidchartlibrary-2-1-6.jar :下载地址及介绍见Android ...

  6. python折线图多个颜色_最适合小白学的花色玩Python折线图|画个天气预报

    这是菜鸟学Python的第102篇原创文章 阅读本文大概需要3分钟 前面写一篇关于数据可视化的入门开篇,简单的介绍了一下Matplotlib的使用(小白开始学Python最著名的绘图库),今天我们进一 ...

  7. python生成折线图怎么对特定点做颜色_python使用matplotlib绘制简单的折线图和散点图...

    生成数据 数据可视化 数据可视化指的是通过可视化表示来探索数据,它与数据挖掘机密相关. 安装matplotlib 请访问https://pypi.python.org/pypi/matplotlib/ ...

  8. 常用echart图表(柱状图、折线图、饼图、环形进度条、雷达图等等)基础配置和用法、resize()响应、轮播tooltip

    一.最简单的使用方式引入官方echart.js即可 <script src="js/echarts.js"></script> 二.页面准备一个DOM容器 ...

  9. pyqtgraph基础入门(二):使用pyqtgraph绘制折线图(同一坐标轴包含多条折线)

    文章目录 编写作图方法 源码文件 现在假设已经用qtdesigner绘制了 .ui 文件,ui文件中有提升为pyqtgraph 类型的widget.同时已经拿到了 .ui 文件 转化成的 .py文件, ...

最新文章

  1. 这个美国议员候选人想发币,联邦选举委员会还答应了
  2. Cocos2d-x 常见宏
  3. java中异常处理机制
  4. 前端性能优化:当页面渲染遇上边缘计算
  5. PHP 的面向方面编程
  6. vue底部跳转_详解Vue底部导航栏组件
  7. 全排列及相关扩展算法(七)——组合数的字典序(另含全章代码整理)
  8. 10.傅里叶变换——傅里叶变换、计算傅里叶变换_3
  9. createbitmap 旋转90度_如何旋转的位图90度
  10. Could not find a version that satisfies the requirement torch==1.4.0 (from torchvision)
  11. 打开Excle出现配置进度解决方法
  12. Linux CentOS 服务器清理磁盘空间
  13. Android安卓的发展史
  14. Linux服务器重启后crs,更改服务器名后CRS无法启动
  15. 自考本科计算机哪个专业好,为什么自考本科选择计算机专业的人少
  16. 西门子plc与台达变频器通讯程序 西门子plc200smart与台达变频器modbus通讯程序
  17. 抖音、快手、百度等105款App 遭通报
  18. 机械制图-画、读组合体的视图
  19. 高利润赚钱行业有哪些?300的利润使人疯狂
  20. 破解你的密码需要多久? AMD 450GB数据被黑

热门文章

  1. VMWare虚拟机安装Win7 64位
  2. 杨校老师课堂之WEB前端HTML
  3. postgres操作指南
  4. C语言字符串输入输出
  5. ZigBee和WiFi的区别
  6. 使用Jmeter模拟浏览器
  7. 思科模拟器实验10:标准ACL配置
  8. js赋值之后原数据被改变
  9. python:__setitem__方法详解
  10. PTA  部落(并查集)