echarts 中如何定制dataZoom显示的起始值和结束值

echarts 中如何定制dataZoom显示的起始值和结束值,而不是现在的从X轴数据中取;X轴展示时间十和分;dataZoom中展示月日 十和分

在ECharts中,可以通过设置dataZoom组件的startValue和endValue属性,来手动设置dataZoom的起始值和结束值。


option = {
  xAxis: {
    type: 'time',
    axisLabel: {
      formatter: function (value) {
        // 格式化时间,展示月日时分
        return echarts.format.formatTime('MM-dd hh:mm', value);
      }
    }
  },
  dataZoom: {
    type: 'slider',
    startValue: new Date('2023-03-01 10:00').getTime(),
    endValue: new Date('2023-03-01 10:30').getTime(),
    handleLabel: {
      formatter: function (value) {
        // 格式化时间,展示月日时分
        return echarts.format.formatTime('MM-dd hh:mm', value);
      }
    }
  },
  // 其他配置项...
  series: [
    // 数据系列...
  ]
};

在上面的示例中,我们在 dataZoom 中设置了 startValue 和 endValue,分别表示 dataZoom 显示的起始值和结束值,而不是从 X 轴数据中取。另外,在 axisLabel 和 handleLabel 中都设置了时间的格式化方式,以展示月日时分的形式。

需要注意的是,startValue 和 endValue 的值需要是一个时间戳,而不是一个字符串,所以我们需要使用 new Date() 来将字符串转化为时间戳。

img


用这几个

  • 这篇文章:echarts datazoom 显示的位置设置 也许有你想要的答案,你可以看看
  • 除此之外, 这篇博客: ECHARTS学习之dataZoom组件详解中的 dataZoom-inside 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 所谓内置,即内置在坐标系中。
    平移:在坐标系中滑动拖拽进行数据区域平移。
    缩放
    PC端:鼠标在坐标系范围内滚轮滚动(MAC触控板类同)
    移动端:在移动端触屏上,支持两指滑动缩放。
    属性配置详情如下:

     {
    
                    type: 'inside',//组件类型
                    id: 'insideX',//组件 ID。默认不指定。指定则可用于在 option 或者 API 中引用组件。
                    disabled: false,//是否停止组件功能。
                    //xAxis与yAxis参见grid
                    xAxisIndex: 0,//设置组件控制的x轴,如果是number表示控制一个轴,如果是Array表示控制多个轴。(控制第一个轴)
                    yAxisIndex: [0, 2],//设置组件控制的y轴,如果是number表示控制一个轴,如果是Array表示控制多个轴。(控制第一个和第三个轴)
                    //radiusAxis与angleAxis参见polar
                    radiusAxisIndex: 0,//设置组件控制的radius轴,如果是number表示控制一个轴,如果是Array表示控制多个轴。
                    angleAxisIndex: [0, 1],//设置组件控制的angle轴,如果是number 表示控制一个轴,如果是Array表示控制多个轴。
                    //dataZoom 的运行原理是通过 数据过滤以及在内部设置轴的显示窗口来达到 数据窗口缩放的效果。
                    //'filter':当前数据窗口外的数据,被过滤掉。即会影响其他轴的数据范围。每个数据项,只要有一个维度在数据窗口外,整个数据项就会被过滤掉。
                    // 'weakFilter':当前数据窗口外的数据,被过滤掉。即会影响其他轴的数据范围。每个数据项,只有当全部维度都在数据窗口同侧外部,整个数据项才会被过滤掉。
                    // 'empty':当前数据窗口外的数据,被设置为空。即不会影响其他轴的数据范围。
                    // 'none': 不过滤数据,只改变数轴范围。
                    filterMode: 'filter',
                    start: 0,//数据窗口范围的起始百分比。范围是:0 ~ 100。表示 0% ~ 100%。
                    end: 100,
                    startValue: 0,//数据窗口范围的起始数值(绝对数值)。如果设置了dataZoom-inside.start 则startValue失效。
                    endValue: 100,
                    minSpan: 0,//用于限制窗口大小的最小值(百分比值),取值范围是0 ~ 100。
                    maxSpan: 100,
                    //如在时间轴上可以设置为:3600 * 24 * 1000 * 5 表示 5 天。在类目轴上可以设置为5表示5个类目。
                    minValueSpan: 5,//用于限制窗口大小的最小值(实际数值)。
                    maxValueSpan: 10,
                    orient: 'horizontal',//布局方式是横还是竖。不仅是布局方式,对于直角坐标系而言,也决定了,缺省情况控制横向数轴还是纵向数轴。
                    zoomLock: true,//是否锁定选择区域(或叫做数据窗口)的大小。如果设置为 true 则锁定选择区域的大小,也就是说,只能平移,不能缩放。
                    animation: true,//设置动画效果
                    throttle: 100,//设置触发视图刷新的频率。单位为毫秒(ms)。
                    //如果我们手动在 option 中设定了 rangeMode,那么它只在 start 和 startValue 都设置了或者 end 和 endValue 都设置了才有意义。
                    // 所以通常我们没必要在 option 中指定 rangeMode。
                    rangeMode: ['value', 'percent'],//rangeMode: ['value', 'percent'],表示 start 值取绝对数值,end 取百分比。
                    //如何触发缩放。
                    zoomOnMouseWheel: true,// 可选值为:true:表示不按任何功能键,鼠标滚轮能触发缩放。false:表示鼠标滚轮不能触发缩放。
                    //如何触发数据窗口平移。
                    moveOnMouseMove: true,//。可选值为:true:表示不按任何功能键,鼠标移动能触发数据窗口平移。false:表示鼠标移动不能触发平移。
                    //如何触发数据窗口平移。
                    moveOnMouseWheel: true,//可选值为:true:表示不按任何功能键,鼠标滚轮能触发数据窗口平移。false:表示鼠标滚轮不能触发平移。
                    preventDefaultMouseMove: true//是否阻止 mousemove 事件的默认行为
                },