ECharts学习四 --- 数据区域缩放组件(dataZoom)

除了图表外, ECharts 中提供了很多交互组件。例如:

图例组件 legend标题组件 title视觉映射组件 visualMap数据区域缩放组件 dataZoom时间线组件 timeline

 

数据区域缩放组件 dataZoom介绍

  • dataZoom 组件是对 数轴(axis) 进行『数据窗口缩放』『数据窗口平移』操作。

       可以通过 dataZoom.xAxisIndex 或 dataZoom.yAxisIndex 来指定 dataZoom 控制哪个或哪些数轴。

  • dataZoom 组件可同时存在多个,起到共同控制的作用。控制同一个数轴的组件,会自动联动。
  • dataZoom 的数据窗口范围的设置,目前支持两种形式:

dataZoom 组件现在支持几种子组件:

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>ECharts</title>
    <!-- 引入 echarts.js -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/4.1.0.rc2/echarts.min.js"></script>
</head>
<body>

<div id="main" style="width: 600px;height:400px;"></div>

<script type="text/javascript">

	var myChart = echarts.init(document.getElementById('main'));
	
	myChart.setOption({
	    xAxis: {
	        type: 'value'
	    },
	    yAxis: {
	        type: 'value'
	    },
	    dataZoom: [// 这个dataZoom组件,若未设置xAxisIndex或yAxisIndex,则默认控制x轴。
	        {
	            type: 'slider',//这个 dataZoom 组件是 slider 型 dataZoom 组件(只能拖动 dataZoom 组件导致窗口变化)
	            xAxisIndex: 0, //控制x轴
	            start: 10, 	// 左边在 10% 的位置
	            end: 60 	// 右边在 60% 的位置
	        },
	        {
	            type: 'inside',//这个 dataZoom 组件是 inside 型 dataZoom 组件(能在坐标系内进行拖动,以及用滚轮(或移动触屏上的两指滑动)进行缩放)
	            xAxisIndex: 0,//控制x轴
	            start: 10,
	            end: 60
	        },
	        {
	            type: 'slider',//slider 型 dataZoom 组件
	            yAxisIndex: 0,//控制y轴
	            start: 30,
	            end: 80
	        },
	        {
	            type: 'inside',// inside 型 dataZoom 组件
	            yAxisIndex: 0,//控制y轴
	            start: 30,
	            end: 80
	        }
	    ],
	    series: [
	        {
	            name: 'scatter',
	            type: 'scatter',// 这是个『散点图』
	            itemStyle: {
	                normal: {
	                    opacity: 0.8
	                }
	            },
	            symbolSize: function (val) {
	                return val[2] * 40;
	            },
	            data: [["14.616","7.241","0.896"],["3.958","5.701","0.955"],["2.768","8.971","0.669"],["9.051","9.710","0.171"],["14.046","4.182","0.536"],["12.295","1.429","0.962"],["4.417","8.167","0.113"],["0.492","4.771","0.785"],["7.632","2.605","0.645"],["14.242","5.042","0.368"]]
	        }
	    ]
	});
	

</script>
</body>
</html>

效果图:(能在坐标系中进行滑动,以及使用滚轮缩放)

### 回答1: 如果 EChartsdataZoom-inside 不支持手机的 touch 事件,可以尝试使用 dataZoom-slider 组件,该组件支持 PC 和移动端的触摸事件。具体方法如下: 1. 在 ECharts 的 option 中添加 dataZoom-slider 组件,例如: ``` dataZoom: { type: 'slider', start: 0, end: 100, zoomLock: true } ``` 2. 可以设置 start 和 end 来确定 dataZoom 的初始范围,通过 zoomLock 属性来控制是否锁定缩放比例。 3. 如果需要设置 dataZoom 的样式,可以在 option 中添加 xAxis 和 yAxis 的属性,例如: ``` xAxis: { boundaryGap: true, data: ['周一', '周二', '周三', '周', '周五', '周六', '周日'], axisLabel: { show: true, textStyle: { color: '#333' } } }, yAxis: { type: 'value', axisLabel: { show: true, textStyle: { color: '#333' } } } ``` 4. 最后,需要在使用 ECharts 的页面中引入 echarts.min.js 文件。 以上方法可以解决 EChartsdataZoom-inside 组件不支持手机的 touch 事件的问题,使用 dataZoom-slider 组件可以实现 PC 和移动端的兼容。 ### 回答2: 对于EChartsdataZoom-inside不支持手机的touch事件的情况,可以采取以下解决方案。 1. 使用third party库:可以考虑引入一些第三方库,如hammer.js等,来增加手机端的touch事件支持。这些库可以帮助处理触摸事件,包括手势识别和事件处理,并将其与ECharts中的dataZoom-inside结合使用。 2. 自定义事件处理程序:通过自定义事件处理程序,可以捕获并处理手机端的touch事件。在dataZoom-inside所在的容器上,监听触摸事件,并根据触摸的位置和手势移动的方向,实现类似于dataZoom-inside的缩放和拖拽效果。 3. 响应式设计:重新考虑使用ECharts的其他组件,如dataZoom-slider等,它们在手机端的触摸事件支持更好。根据用户设备的不同,可以选择合适的组件进行展示和操作。 4. 修改源码:若具备开发能力,在ECharts源码的基础上进行改动,增加手机端的touch事件支持,使dataZoom-inside能够适配手机端的操作。 综上所述,要解决EChartsdataZoom-inside不支持手机的touch事件,我们可以使用第三方库、自定义事件处理程序、响应式设计或修改源码等方式来增加手机端的touch事件支持,以实现手机端的触摸操作。 ### 回答3: ECharts是一个强大的数据可视化库,提供了丰富的交互功能,其中包括dataZoom-inside(内置型数据区域缩放)。然而,确实有时候在手机上使用dataZoom-inside时会遇到不支持触摸事件的问题。 解决这个问题的方法有以下几种: 1. 使用dataZoom-slider代替dataZoom-inside:dataZoom-slider是ECharts提供的另一种数据区域缩放方式,它适用于手机触摸事件,并且提供了滑动条来进行缩放操作。可以考虑尝试使用dataZoom-slider来代替dataZoom-inside,以实现在手机上的交互操作。 2. 自定义事件处理:可以通过ECharts的事件处理机制,自定义某个元素的触摸事件来实现dataZoom-inside的缩放效果。具体步骤包括监听触摸事件,根据触摸位置计算缩放比例,然后更新dataZoom-inside的缩放范围。这需要对ECharts的事件处理机制有一定的了解,并且需要根据具体情况进行适配和调整。 3. 使用ECharts的扩展插件:ECharts社区中有一些第三方扩展插件,可以用来增强ECharts的功能和交互性。可以在插件市场或者GitHub上搜索相关扩展插件,并查看是否有支持手机触摸事件的dataZoom-inside扩展插件。 总之,尽管EChartsdataZoom-inside在手机上不支持触摸事件,但可以通过替代解决方案、自定义事件处理或者使用扩展插件的方式来弥补这个问题,以满足手机端的需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值