Echarts 分段设置X轴间隔,步长 - 模拟实现

目录

需求原因:

需求效果:

html代码:

 使用到的数据:


需求原因:

由于数据前一段对应的Y值变化比较大,后一段对应Y值变化比较小,客户只关注前一段的Y值变化,于是想到分段设置X轴间隔,由于官方没有直接支持,于是通过组合两个坐标系方式实现

需求效果:

html代码:

<!DOCTYPE html>
<html style="height: 100%">

<head>
    <meta charset="utf-8">
</head>

<body style="height: 100%; margin: 0">
    <div id="container" style="height: 100%"></div>
    <script type="text/javascript" src="../dist/echarts.min.js"></script>
    <script type="text/javascript" src="../dist/echarts-gl.min.js"></script>
    <script type="text/javascript" src="../dist/ecStat.min.js"></script>
    <script type="text/javascript" src="../dist/extension/dataTool.min.js"></script>
    <script type="text/javascript" src="../map/js/china.js"></script>
    <script type="text/javascript" src="../map/js/world.js"></script>
    <script type="text/javascript" src="../dist/extension/bmap.min.js"></script>
    <script type="text/javascript" src="../dist/jquery.min.js"></script>
    <script type="text/javascript">
        var dom = document.getElementById("container");
        var myChart = echarts.init(dom);
        var app = {};
        option = null;

        $.getJSON("频域幅值p1.json", function (data1) {

            var data = [];
            var len = data1[0].length;
            for (var i = 0; i < len; i++) {

                data.push([data1[0][i].X, data1[0][i].Y]);
            }
            var data2 = [];
            var len2 = data1[1].length;
            for (var i = len; i < len2; i++) {

                data2.push([data1[1][i].X, data1[1][i].Y]);
            }

            option = {
                title: {
                    text: '频率幅值图'
                },
                grid: [  //将视图分成2个区域
                    {
                        left: 100,
                        width: 200
                    },
                    {
                        left: 301,
                        width: 500
                    }
                ],
                xAxis: [
                    {
                        type: 'value',
                        //zlevel: 0,
                        gridIndex: 0,  //使用第一个区域
                        splitLine: {
                            show: false  //不显示网格线
                        }
                    },
                    {
                        type: 'value',
                        position: 'bottom',
                        min: 1,
                        //zlevel: 1,
                        gridIndex: 1,  //使用第二个区域
                        axisLine: {
                            show: true,  //显示轴线
                            color: 'red'
                        },
                        show: true,  //显示X轴
                        splitLine: {
                            show: false
                        }

                    }
                ],
                yAxis: [
                    {
                        type: 'value',
                        //zlevel: 0,
                        gridIndex: 0,
                        interval: 500,
                        splitLine: {
                            show: false
                        }
                    },
                    {
                        type: 'value',
                        //zlevel: 1,
                        gridIndex: 1,
                        min: 0,
                        max: 500,
                        interval: 500,
                        axisLabel: {
                            show: false
                        },
                        axisLine: {
                            show: false
                        },
                        splitLine: {
                            show: false
                        },
                        show: false  //第二条Y轴不显示

                    }
                ],
                series: [
                    {
                        type: 'line',
                        data: data,
                        xAxisIndex: 0,
                        yAxisIndex: 0,
                        symbol: "none",
                        lineStyle: {
                            color: 'red'
                        }
                    },
                    {
                        type: 'line',
                        data: data2,
                        xAxisIndex: 1,
                        yAxisIndex: 1,
                        symbol: "none",
                        lineStyle: {
                            color: 'red'
                        }
                    }
                ]
            };
            if (option && typeof option === "object") {
                myChart.setOption(option, true);
            }
        });
    </script>
</body>

</html>

效果:

 

使用到的json数据:

链接: https://pan.baidu.com/s/1-cF3Hvv_2kwrbUby7T_d5w 提取码: njq5 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值