zoukankan      html  css  js  c++  java
  • Flot转身为其它的SPC控制图

    SPC即统计过程控制(Statistical Process Control)。SPC主要是指应用统计分析技术对生产过程进行实时监控,科学的区分出生产过程中产品质量的随机波动与异常波动,从而对生产过程的异常趋势提出预警,以便生产管理人员及时采取措施,消除异常,恢复过程的稳定,从而达到提高和控制质量的目的。

    控制图是统计质量控制的基本工具,是一种把代表过程当前状态的样本信息与根据过程固有变异建立的控制限进行比较的方法。其主要用途是提供一种手段,以评估生产运行或管理过程是否处于“统计控制状态”。

    目前只是实现了,flot转换为Xbar,Xbars,I-MR,I-MR-S,EWMA等的转换。无非就是为了实现在网页上亦可以通过控制图重现实际数据。

    只谈一下,转换时的想法,因为可能想法也不算成熟,只是工作需要就草草将其实现并包装。不过需要的博友们可以联系偶。

    flot向Xbar,Xbars,I-MR,I-MR-S转身时,根据这些控制图的特点:每种控制图中包含不同张数的小图,每张小图亦有自己的控制限,数据等。我们做绘制时,只需要将数据绘制到页面中,并不需要管究竟是那张图。简单的想法就是:对于需要绘制的控制图,每张小图占用一个div,将多个div拼接在一起即可组成需要的不同的控制图整体。我们需要为不同小图占用的DIV利用Flot进行绘制即可。至于封装过程,可以根据自己需要去设计。下面给出一个我的接口:

    function DrawChart(chartcount, spec1, spec2, spec3, data1, reddotArry, data2, data3, timeArry, batchChangeTime, Tips1, Tips2, Tips3, placeholder1, placeholder2, placeholder3) 

    参数解释:

    目前,我们再使用的控制图中,最多有三张图,最少一张。其实有三张图已经足够了。所以,我的接口很撮的给它封死了。如果说以后的以后的以后控制图张数增加了,就需要修改了...八嘎.最近也在计划抽时间修改

    function DrawChart(chartcount, spec, data, reddotArry, timeArry, batchChangeTime, Tips, placeholder) 

    spec为spec1, spec2, spec3,spec4...的数组,同理data,tips,placeholder。设计为数组的数组,这样就可以随意不需要估计上限了,只需要穿参数时,将数据打包过来就行...尚未行动起来哉

    chartcount:需要绘制的控制图整体总包含几张小图。有几张小图就显示几个组合需要的DIV

    spec1:第一张控制图的控制限,数组

    spec2:第二张控制图的控制限,数组

    spec3:第三张控制图的控制限,数组

    data1:第一张图的数据序列,数组

    reddoyArry:由于第一张图需要判异,异常的数据点需要标为红色,数组

    data2:第二章图的数据序列,数组

    data3:第三张图的数据序列,数组

    timeArry:每一个数据点采集时都有自己的采集时间,数组.该时间与上面说的第一张图的数据点一一对应

    batchChangeTime:换批时间,因为根据数据或者数据采集时间根本无法判断生产过程中,批次是否发生变化,所以换批时间需要外部传如,控制图中根据换批时间给出换批提示

    聪明的你,肯定想到了,Tip1,2,3一定都是对应的三张图的每个点的提示信息,都是以数组形式传入的。

    placeholder1, placeholder2, placeholder3是三张小图分别的位置。

    这个封装,最多三张控制图时使用可以了。当然了,这过程中需要修改Flot的源码。

    Flot向EWMA转身。我的设想是:同一张图中画三根曲线:上面的一根作为“上限”,只显示线,不显示点。中间一根作为绘制数据点的线,有连接线,有数据点。下面一根作为“下限”,各司其职。只是在“上限”“下限”绘制时,需要根据中间的显示数据信息的线来确定他们的位置。每一个点对应的控制限位置不同。

    我设计的接口

    function DrawEWMAChart(data1,data2,data3,timeArry,specArry,tips) 

    其中 tips只是中间显示数据的点的ToolTip,数组

    specArry:设置y轴用的

    timeArry:用来设置x轴的Ticks

    data1,data2,data3分别为“上限”,“数据点”,“下限”。

    这里没有涉及到跟中控制图的算法。算法都是C#后台算好,网页中只需要Ajax获取这些数据即可绘制控制图

  • 相关阅读:
    用优先级队列实现先进先出队列;
    c#入门经典(第三版) 练习6.8(5)
    请给出一个时间为O(nlgk)、用来将k个已排序链表的算法。此处n为所有输入链表中元素的总数。
    计数排序
    Heap_delete(A,i)操作将结点i中的想从堆A中删去。对含n个元素的最大堆,请给出时间为O(lgn)的HEAPDELETE的实现。
    堆排序
    请给出一个算法,使之对于给定的介于0到k之间的n个整数进行预处理,并能在O(1)时间内,回答出输入的整数中有多少个落在区间[a..b]内,你给出的算法上预处理时间应是O(n+k)。
    sql存储过程传多个id查询,使用in
    SQL使用语句修改列及表名
    泛型约束使用?有些不知道叫什么好!
  • 原文地址:https://www.cnblogs.com/hexinxiaoyao/p/he3.html
Copyright © 2011-2022 走看看