前端可视化工具ECharts 学习笔记(二)_针对x轴类型为time的

X轴的type 设置为time, X 轴就不需要data 了,

那么serie 的data 必须是二维数组的

[

[1538496443941, 123],

[1538502852702, 234]        

]

第一个是时间的长整型, 第二个是对应y 轴的值.

数组1.push(数组2); //数组2 push 2个值, 每次循环数组2要重新new

X轴的显示日期格式必须自己修改,

xAxis: {

            type: 'time',

            axisLabel: {

                interale: 0,

                rotate: -40,

                formatter: function (value) {

                    var t_date = new Date(value);

                    return [t_date.getFullYear(), t_date.getMonth() + 1, t_date.getDate()].join('/') + " "

                        + [t_date.getHours(), t_date.getMinutes()].join(':');

                }

            },

            axisPointer: {//y轴上显示指针对应的值

                show: true,

            },

        },

 

效果图:

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <!-- 引入 ECharts 文件 -->
    <script src="echarts.js"></script>
  <title>ECharts lin49940 test</title>
 </head>
 <body>
  <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
    <div id="main" style="width: 1600px;height:800px;"></div>

<script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));

        // 指定图表的配置项和数据
    var base = +new Date(2018, 9, 3);
    var oneDay = 24 * 3600 * 1000;//毫米,分钟,小时,天

    var data2 = [];
    var data = [];
    var data12 = [];
    var data22 = [];
    var now = new Date(base);
    var now2 = new Date(base);

    var color1='#f34';
    var    color2 = '#23f';
    function addData(shift) {

        now = new Date(+new Date(now) + Math.random() * 10 * 1000 * 60);
        now2 = new Date(+new Date(now2) + oneDay);
        data12 = new Array();
        data22 = new Array();
        data12.push(now);
        data12.push((Math.random() - 0.4) * 10 + 15);
        data22.push(now);
        data22.push((Math.random() - 0.4) * 40 + 15);
        data.push(data12);
        data2.push(data22);

        if (shift) {
            data.shift();
            data2.shift();
        }
        //alert(now);
        now = new Date(+new Date(now) + Math.random() * 10 * 1000 * 60 );
        now2 = new Date(+new Date(now2) + oneDay);
        //alert(now);
    }
    for (var i = 1; i < 50; i++) {
        addData();
    }
    console.log(data);
    option = {
        title: {
            text: 'lin49940 test'
        },
        legend: {
            //selectedMode: 'single',
            data: ['成交', '成交2']
            //orient:'vertical'    //默认水平方向,这里设置为垂直
        },
        tooltip: {
        },
        toolbox: {
            feature: {
                magicType: {
                    type: ['line','bar']
                },
                dataView: { 
                },
                restore: {},
                saveAsImage: {
                    pixelRatio:2
                }
            }
        },
        grid: {
            bottom: '80px'
        },
        xAxis: {
            type: 'time',
            axisLabel: {
                interale: 0,
                rotate: -40,
                formatter: function (value) {
                    var t_date = new Date(value);
                    return [t_date.getFullYear(), t_date.getMonth() + 1, t_date.getDate()].join('/') + " "
                        + [t_date.getHours(), t_date.getMinutes()].join(':');
                }
            },
            axisPointer: {//y轴上显示指针对应的值
                show: true,
            },
        },
        yAxis: [
            {
                name: '销量1',
                type: 'value',
                axisLabel: {//设置Y轴显示值, 自定义需要
                    formatter:'{value}rmb'
                },
                axisLine: {//设置Y轴的颜色
                    lineStyle: {
                        color: color2,
                        width:6,
                    }
                },
                axisPointer: {//y轴上显示指针对应的值
                    show: true,
                    triggerTooltip: false  //不要再有多的提示
                }

            },
            {
                name: '销量2',
                type: 'value',
                position: 'left',
                offset: 70,
                axisLine: {
                    lineStyle: {
                        color: color1,
                        width: 3,
                    }
                },
                axisPointer: {//y轴上显示指针对应的值
                    show: true,
                    triggerTooltip: false
                }
            }
            
        ],
        
        dataZoom: [
            {   // 这个dataZoom组件,默认控制x轴。
                type: 'slider', // 这个 dataZoom 组件是 slider 型 dataZoom 组件
                start: 10,      // 左边在 10% 的位置。
                end: 60         // 右边在 60% 的位置。
            },
            {   // 这个dataZoom组件,默认控制x轴。鼠标滚动变化
                type: 'inside', // 这个 dataZoom 组件是 slider 型 dataZoom 组件
                start: 10,      // 左边在 10% 的位置。
                end: 60         // 右边在 60% 的位置。
            },
        ],
        
        series: [
            {
                name: '成交',
                type: 'line',
                smooth: true,
                symbol: 'none',
                ///stack: 'a',
                color: color2,
                data: data,
                label: {
                    normal: {
                        show: true,
                        position: 'top',
                        formatter: function (params) {
                            return parseInt(params.value[1]);
                        }
                    }
                }
            },
            {
                name: '成交2',
                type: 'line',
                smooth: true,
                symbol: 'none',           
                //stack: 'a',
                color: color1,
                yAxisIndex:1,
                data: data2,
                showSymbol: false,
                hoverAnimation:false,
            },
            {
                name: '平行于y轴的趋势线',
                type: 'line',
                markLine: {
                    silent: true,
                    data:[
                       { yAxis: 110 }, { yAxis: 220 }, {yAxis:320}
                    ]
                }
            }
        ]
    };
    /*
    setInterval(function () {
        addData(true);
        myChart.setOption({
            xAxis: {
                data: date
            },
            series: [{
                name: '成交',
                data: data
            }]
        });
    }, 500);
    */
    
        // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(option);

    myChart.dispatchAction({
        type: 'legendToggleSelect',
        // 图例名称
        name: '成交'
    })

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

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值