(完整)ECharts(趋势图(曲线版)带双滚轮)

 1.我是用的element + vue下面的代码是js代码

                        let myChart = echarts.init(document.getElementById('main'));
                        that.tableData = data;
                        that.loading = false;
                      
                        myChart.setOption({
                            title: {
                                text: '高炉锌负荷趋势图'
                            },
                            tooltip: {
                                trigger: 'axis'
                            },
                            legend: {
                                data: ['锌', '铝', '镉', '铅', '汞']
                            },
                            grid: {
                                left: '3%',
                                right: '4%',
                                bottom: '3%',
                                containLabel: true
                            },
                            toolbox: {
                                feature: {
                                    saveAsImage: {}
                                }
                            },
                            xAxis: {
                                type: 'category',//组件控制
                                boundaryGap: false,
                                data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
                            },
                            yAxis: {
                                type: 'value'
                            },
                            series: [
                                {
                                    name: '锌',
                                    type: 'line',
                                    stack: 'Total',
                                    data: that.XIN,
                                },
                            ],
                            dataZoom: [
                                {
                                    type: 'slider',
                                    show: true,
                                    yAxisIndex: [0],
                                    left: '93%',
                                    start: 0, //数据窗口范围的起始百分比
                                    end: 36,
                                    start: 0, // 滚动条的起始位置(10%)
                                    end: 100, // 滚动条的终止位置(90%)
                                },
                                {
                                    type: 'inside',
                                    yAxisIndex: [0],
                                    start: 0,
                                    end: 36,
                                    start: 0, // 滚动条的起始位置(10%)
                                    end: 100, // 滚动条的终止位置(90%)
                                },
                                {
                                    type: "slider",
                                    show: true, // flase直接隐藏图形
                                    xAxisIndex: [0],
                                    left: "9%", // 滚动条靠左侧的百分比
                                    bottom: -5,
                                    start: 0, // 滚动条的起始位置(10%)
                                    end: 100, // 滚动条的终止位置(90%)
                                },
                            ]
                        });

2.html代码

 <div id="main" style="width: 85%;height: 80%; margin-left: 9%"></div>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您可以通过使用ECharts中的DataZoom组件来实现柱状轮播滚动和可暂停,以及通过设置表的可滚动性来实现鼠标滚轮上下滚动查看。 以下是一个示例代码,可以让您更好地理解如何实现这些功能: ```javascript option = { // 设置数据区域缩放组件 dataZoom: [{ type: 'slider', show: true, xAxisIndex: [0], start: 0, end: 60, // 显示60个数据 handleSize: 16, handleStyle: { color: '#ddd' }, textStyle: { color: '#fff' }, fillerColor: 'rgba(255,255,255,0.2)', borderColor: '#ddd' }, { type: 'inside', xAxisIndex: [0], start: 0, end: 60 // 显示60个数据 }], // 设置柱状 xAxis: { type: 'category', data: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'], axisTick: { alignWithLabel: true }, // 设置轴线样式 axisLine: { lineStyle: { color: '#fff' } } }, yAxis: { type: 'value', // 设置轴线样式 axisLine: { lineStyle: { color: '#fff' } } }, series: [{ name: '柱状', type: 'bar', data: [20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270], // 设置柱状样式 itemStyle: { normal: { color: function(params) { var colorList = ['#C1232B','#B5C334','#FCCE10','#E87C25','#27727B', '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD', '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0', '#C1232B','#B5C334','#FCCE10','#E87C25','#27727B', '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD']; return colorList[params.dataIndex % colorList.length] } } } }] }; // 设置定时器,让柱状自动轮播 var currentIndex = -1; var timeTicket = null; var count = option.xAxis.data.length; timeTicket && clearInterval(timeTicket); timeTicket = setInterval(function() { var dataLen = option.series[0].data.length; // 取消之前高亮的形 myChart.dispatchAction({ type: 'downplay', seriesIndex: 0, dataIndex: currentIndex }); currentIndex = (currentIndex + 1) % dataLen; // 高亮当前形 myChart.dispatchAction({ type: 'highlight', seriesIndex: 0, dataIndex: currentIndex }); // 显示 tooltip myChart.dispatchAction({ type: 'showTip', seriesIndex: 0, dataIndex: currentIndex }); // 设置数据区域缩放组件的起点和终点 myChart.setOption({ xAxis: { axisLabel: { show: true, interval: 0, rotate: 0 }, data: option.xAxis.data.slice(currentIndex, currentIndex + count) }, dataZoom: [{ start: currentIndex / dataLen * 100, end: (currentIndex + count) / dataLen * 100 }, { start: currentIndex / dataLen * 100, end: (currentIndex + count) / dataLen * 100 }] }); }, 1000); // 设置鼠标滚轮上下滚动查看 var zoomSize = 6; myChart.on('mousewheel', function(params) { var option = myChart.getOption(); var axis = option.xAxis[0]; var dataLen = axis.data.length; var start = axis.dataZoom[0].start; var end = axis.dataZoom[0].end; var maxSpan = 100; var zoom = Math.ceil((end - start) / dataLen * (dataLen - 1)); if (params.wheelDelta > 0) { start = Math.max(0, start - zoom); end = Math.min(dataLen - 1, end + zoom); } else { var center = (start + end) / 2; start = Math.max(0, Math.floor(center - zoom / 2)); end = Math.min(dataLen - 1, start + zoom - 1); } var span = end - start; if (span > maxSpan) { var extra = span - maxSpan; start += extra / 2; end -= extra / 2; } myChart.setOption({ xAxis: { axisLabel: { show: true, interval: 0, rotate: 0 }, data: axis.data.slice(start, end + 1) }, dataZoom: [{ start: start / dataLen * 100, end: end / dataLen * 100 }, { start: start / dataLen * 100, end: end / dataLen * 100 }] }); }); ``` 在上面的代码中,我们首先通过设置`dataZoom`组件来实现柱状的轮播和暂停功能。其中,`start`和`end`表示数据区域缩放组件的起点和终点,可以通过设置这两个属性来控制显示的数据量。通过定时器,我们可以控制柱状每隔一段时间自动轮播一次。在鼠标滚轮上下滚动时,我们通过`mousewheel`事件来控制显示的数据量,从而实现了滚轮上下滚动查看的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃亏了的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值