使用css实现等间距刻度线效果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用css实现等间距刻度线效果相关的知识,希望对你有一定的参考价值。

参考技术A background-image: repeating-linear-gradient(to right, rgba(255, 255, 255, 0),rgba(249, 249, 249, 0) 4px,#000 4px ,#000 8px);

width: 200px;

height: 20px;

echarts实现双y轴(多y轴)刻度间距动态保持一致

1.在项目中实现双y轴效果如下

echarts实现双y轴(多y轴)刻度间距动态保持一致_双y轴

存在的问题就是左右双y轴的辅助线splitLine没有保持一致,显得有点乱,针对次问题,特意拎出来单独总结一下

2.实现过程

在实现echarts双y轴(多y轴)刻度间距保持一致的问题,需要涉及到一些简单的计算过程,主要是最大值、最小的、向上取整、倍数等计算过程

2.1 求一个数的向上最近的且为5(也可以是其他的数)的倍数的整数

let a = 12let b = Math.ceil(a / 5) * 5 // 15
let a = 18let b = Math.ceil(a / 5) * 5 // 20
JavaScript

2.2 求一个数的向下最近的且为5(也可以是其他数)的倍数的整数

let a = 12let b = Math.floor(a / 5) * 5 // 10
let a = 18let b = Math.floor(a / 5) * 5 // 15
let a = -8let b = Math.floor(a / 5) * 5 // -10
JavaScript

2.3 实现双y轴刻度间距保持一致

有了上面的基础,就可以实现双y轴刻度间距动态保持一致了

const myChart = echarts.init(document.getElementById(main));
// 数据都为整数类型const yData1 = [79, 85, 224, 218, 121, 147, 280]const yData2 = [94, 300, 345, 320, 400, 601, 821]
// 1. 找出最大值 和 最小值let max1 = Math.max.apply(null, yData1)let max2 = Math.max.apply(null, yData2)let min1 = Math.min.apply(null, yData1)let min2 = Math.min.apply(null, yData2)
console.log(max1, max1)console.log(max2, max2)console.log(min1, min1)console.log(min2, min2)
// 2. 最大值: 向上取整, 且为5的倍速let newMax1 = Math.ceil(max1 / 5) * 5 // note: 关键代码let newMax2 = Math.ceil(max2 / 5) * 5 // note: 关键代码
// 3. 最小值: 向下取整, 且为5的倍数let newMin1 = Math.floor( min1 / 5) * 5 // note: 关键代码let newMin2 = Math.floor( min2 / 5) * 5 // note: 关键代码

console.log(newMax1, newMax1)console.log(newMax2, newMax2)console.log(newMin1, newMin1)console.log(newMin2, newMin2)let part = 5 // 分5段let interval1 = (newMax1 - newMin1) / 5 // note: 这个地方是用: 最大值 - 最小值let interval2 = (newMax2 - newMin2) / 5 // note: 这个地方是用: 最大值 - 最小值console.log(interval1, interval1)console.log(interval2, interval2)
const option = xAxis: type: category, data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun] , yAxis: [ type: value, min: newMin1, max: newMax1, interval: interval1, splitLine: lineStyle: color: red , type: value, min: newMin2, max: newMax2, interval: interval2, splitLine: lineStyle: color: green ], series: [ data: yData1, type: line , data: yData2, type: line, yAxisIndex: 1 ];myChart.setOption(option);
JavaScript

2.4 效果如下

echarts实现双y轴(多y轴)刻度间距动态保持一致_双y轴_02

此时无论怎么改变数据,左右两侧的y轴的辅助线都会重合保持一致

2.5 核心代码说明

echarts实现双y轴(多y轴)刻度间距动态保持一致_echarts_03

echarts实现双y轴(多y轴)刻度间距动态保持一致_echarts_04

3.总结

  1. 最大值、最小值获取、向上最近取整且为5的倍数计算、间隔求取


以上是关于使用css实现等间距刻度线效果的主要内容,如果未能解决你的问题,请参考以下文章

安卓自定义弧形刻度选择器

安卓自定义弧形刻度选择器

Android实现滑动刻度尺效果,选择身高体重和生日

R语言ggplot2可视化:自定义坐标轴刻度线(axis ticks)设置坐标轴的不同数据区域使用不同的刻度间距(breaks)分别使用breaks函数minor_breaks函数seq函数

matplotlib 刻度线的位置和数值的动态调整

分隔线+文字居中的css效果如果实现?