Extjs 4 动态显示折线图 按秒显示

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title>Test</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <jsp:include page="/common/Extjs.jsp"></jsp:include>
        <link rel="stylesheet" type="text/css" href="/css/storageSpaceBar.css" />
        <script type="text/javascript" src="/app/plugins/jquery.min.js"></script>
        <script>

        Ext.onReady(function () {
            var chart, timeAxis;
            var nowDate = new Date(Ext.Date.format(new Date(),‘Y-m-d H:i:s‘));  //当前时间
            //产生数据
            var generateData = (function() {
                var data = [], i = 0,
                last = false,
                    date = nowDate,
                    min = Math.min,
                    max = Math.max,
                    random = Math.random;
                return function() {
                    data = data.slice();
                    data.push({
                        date:  Ext.Date.add(date, Ext.Date.SECOND, i++),
                        visits: min(100, max(last? last.visits + (random() - 0.5) * 20 : random() * 100, 0))
                    });
                     last = data[data.length -1];
                    return data;
                };
            })();

            var store = Ext.create(‘Ext.data.JsonStore‘, {
                fields: [‘date‘, ‘visits‘],
                data: generateData()
            });

            //每隔一秒执行
            var intr = setInterval(function() {
                var gs = generateData();  //产生数据
                var toDate = timeAxis.toDate,//时间轴结束时间
                    lastDate = gs[gs.length - 1].date,    //获取最后一个时间点
                    markerIndex = chart.markerIndex || 0;
                if (+toDate < +lastDate) {
                    markerIndex = 1;
                    timeAxis.toDate = lastDate;    //修改截至时间
                    timeAxis.fromDate = Ext.Date.add(Ext.Date.clone(timeAxis.fromDate), Ext.Date.SECOND, 1);//修改开始时间+1
                    chart.markerIndex = markerIndex;
                }
                store.loadData(gs);
            }, 1000);

            var win = Ext.create(‘Ext.window.Window‘, {
                width: 800,
                height: 300,
                autoShow: true,
                layout: ‘fit‘,
                items: [{
                    xtype: ‘chart‘,
                    style: ‘background:#fff‘,
                    itemId: ‘chartCmp‘,
                    store: store,
                    shadow: false,
                    animate: true,
                    axes: [{
                        type: ‘Numeric‘,
                        minimum: 0,
                        maximum: 100,
                        position: ‘left‘,
                        grid:true,
                        fields: [‘visits‘]
                    }, {
                        type: ‘Time‘,
                        position: ‘bottom‘,
                        fields: ‘date‘,
                        dateFormat: ‘H:i:s‘,//时
                        groupBy: ‘year,month,day,hour,minute,second‘,
                        step: [Ext.Date.SECOND, 1], //默认为天
                        grid:true,
                        aggregateOp: ‘sum‘,
                        constrain: true,
                        fromDate: nowDate,    //当前时间
                        toDate: Ext.Date.add(nowDate,Ext.Date.SECOND,20)//6秒后时间
                    }],
                    series: [{
                        type: ‘line‘,
                        showMarkers:false,
                        smooth: false,
                        axis: [‘left‘, ‘bottom‘],
                        xField: ‘date‘,
                        yField: ‘visits‘
                    }]
                }]
            });
            chart = win.child(‘#chartCmp‘);
            timeAxis = chart.axes.get(1);
        });
        </script>
    </head>
    <body>
    </body>
</html>

官方example按天数走得,稍微修改了一下弄成了时分秒,按秒更新的(留存参考)

效果图:

时间: 2024-10-13 16:07:35

Extjs 4 动态显示折线图 按秒显示的相关文章

JFreeChart在Struts2中实现折线图统计

在Struts2中,用JFreeChart实现折线图统计 前段时间学习了一下JFreeChart,现在来整理一下自己所作的实例. 下面分别用两种方式来实现: 一种是以java应用程序的方式,一种是以web项目程序的方式 需要加入的jar包有:  jcommon-1.0.17.jar . jfreechart-1.0.14.jar(前两个是JFreeChart中所带的,在下载的JFreeChart的lib目录下) . struts2-jfreechart-plugin-2.3.16.3.jar(这

JFreeChart在Struts2中实现3D折线图统计

在Struts2中,用JFreeChart实现3D折线图统计 前段时间学习了一下JFreeChart,现在来整理一下自己所作的实例. 下面分别用两种方式来实现: 一种是以java应用程序的方式,一种是以web项目程序的方式 需要加入的jar包有:  jcommon-1.0.17.jar . jfreechart-1.0.14.jar(前两个是JFreeChart中所带的,在下载的JFreeChart的lib目录下) . struts2-jfreechart-plugin-2.3.16.3.jar

[Python Study Notes]折线图绘制

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' >>文件: 折线图.py >>作者: liu yang >>邮箱: [email protected] >>博客: www.cnblogs.com/liu66blog '''''''''''''''''''''''''''''''''''''''''''''''

JS 折线图

echarts 折线图.需要引入:echarts.min.js <script src="${ctxStatic}/common/echarts.min.js" charset="utf-8"  type="text/javascript"></script> JS调用后台方法,得到数据 Map<String, Object> map = new HashMap<String, Object>();

【ExtJs】折线图

ExtJs在ExtJs4之后,包含4则推出了图表功能,虽然图表功能可以通过其余JQuery插件实现,例如<[jQuery]兼容IE6的图表插件Highcharts>(点击打开链接),但是这个ExtJs的图表插件也很优秀,至少一些常见的图表也是不虚的. 一.基本目标 画出如下的折现图: 二.制作过程 首先,ExtJs绘制图表的项目,与<[ExtJs]与后台数据库交互的带分页表格组件grid的查询>(点击打开链接)同样,要先定义一个数据实体. Ext.define('graphData

python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)

最近在用python中的matplotlib画折线图,遇到了坐标轴 "数字+刻度" 混合显示.标题中文显示.批量处理等诸多问题.通过学习解决了,来记录下.如有错误或不足之处,望请指正. 一.最简单的基本框架如下:已知x,y,画出折线图并保存.此时x和y均为数字. 1 # -*- coding: utf-8 -*- 2 3 import matplotlib.pyplot as plt #引入matplotlib的pyplot子库,用于画简单的2D图 4 import random 5

HighCharts实现多数据折线图分列显示

HighCharts实现多数据折线图分列显示 BY ZYZ HighCharts是一个非常好用的web端画图插件,用起来非常方便,它的官方支持非常好,而且有中文API(不完全),画出来的图像也挺漂亮的.最近需要用HighCHarts绘制多数据展示对比的折线图,要求的效果类似下图. 这个图的特点是Y轴从大到小显示,多个X轴对应多个不同的折线,且每个X轴的刻度不同,每条折线的颜色也不同,且折线不交叉. 在官方的在线演示里找了许久,并没有发现可以实现这样效果的例子,虽然有多轴多折线显示的例子,但是折线

3-Highcharts曲线图之显示点值折线图

直接上代码  根据代码注释讲解 <!DOCTYPE> <html lang='en'> <head> <title>3-Highcharts曲线图之显示点值折线图</title> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <script src="../jquery-2.1.4/jquer

ExtJS 折线图趟过的坑

问题: 1.根据条件检索后绘制折线图,之前的坐标没有清除如图 解决方案: 在绘制之前,清空坐票: leftLine.surface.removeAll(); leftLine.redraw(false); 完整代码如下 storeBar.load({ params: { SDate: bTime, EDate: eTime, ResourceId: resourceid }, callback: function (records, operation, success) { var axesI