需求背景
在项目开发中有的页面会要求使用图表区显示以往数据 但时间跨度很大 数据比较多 若展示一个月的话 每天对应一组数据 那就是30条左右 全部堆积到图表上会密密麻麻的 这使用有几种解决方式 要么设置时间范围 要么就给图表加入滚动条
样例展示
这是没有设置初始范围时页面的效果 可拖拽也可左右控制时间范围 但是对于我们需求背景这种情况 初始要控制一个显示范围 不然全部显示的话 有点违背之前提出堆积的情况
这是设置了初始范围页面展示的效果
option配置
const option= ref({xAxis: {type: 'category',data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] // 确保数据长度匹配},yAxis: {type: 'value'},tooltip: {trigger: 'axis' //鼠标放入提示},grid: {left: 40,//为了控制图表左右空白占位去设置right: 40,top: 20,bottom: 70,},series: [{data: [150, 230, 224, 218, 135, 147, 260], // 确保数据长度匹配type: 'line'}],dataZoom: [{type: 'slider', // 外部滚动条xAxisIndex: 0,start: 0, // 0% 位置,即第一个数据点end: 10 // 初始展示10%的数据},{type: 'inside', // 内置滚动条xAxisIndex: 0,start: 0,end: 10 // 与 slider 相同,确保内部和外部缩放条同步}]
});
部分实用dataZoom配置
type
: 指定dataZoom
的类型,可以是'slider'
(带滑动条的缩放组件)或'inside'
(内置型缩放组件,即鼠标滚轮缩放和平移)。xAxisIndex
/yAxisIndex
: 指定dataZoom
控制的坐标轴索引,可以是单个索引值或索引数组,如果是 number 表示控制一个轴,如果是 Array 表示控制多个轴。。start
: 表示数据窗口在当前数据区域中的起始百分比。end
: 表示数据窗口在当前数据区域中的结束百分比。minSpan
/maxSpan
: 分别表示窗口的最小和最大跨度,用于限制用户缩放的范围。filterMode
: 指定过滤数据的模式,对于类目轴(type: 'category'
)有效,可以是'filter'
(只保留窗口内的数据)或'empty'
(窗口外的数据设置为空)。show
: 是否显示dataZoom
组件。height
/width
/bottom
/top
/left
/right
: 这些属性用于控制dataZoom
组件的位置和大小。-
showDetail: //是否显示detail,即拖拽时候显示详细数值信息