如何使Ext line Chart 等效 JFreeChart Bytime 图

a.在Ext画line图是两点连线,相对来Jfreechart说很简单,在SPC的应用中,Jfreechart画P,U chart时UCL,LCL是类似长城凹凸形状的,因此在Ext line图直接连接原有的点是不可能画出跟Jfreechart一样效果的图形。
b.在Ext line Chart图中,我们选 type :'Category' 的原因是坐标均匀,而 type:'Numeric' 显示的坐标刻度不方便用户观看

a问题可以通过判断每个点的ucl,lcl跟前一个点的ucl,lcl值来决定是否增加多一个点,如果相同就不处理,如果不相同就需要生成一个点以达到画直角的目的
b问题会在选则a的基础上引起刻度重复现实的问题,但可以通过对点进行判断来达到隐藏的目标,同时由于显示图形和grid之间是联动,而store是公用一个,因此也需要对grid的记录(对应chart里面的点)进行一个判断及隐藏

实现关键点
   java在后台对原始数据组加工,每一个点都进行复制并设置属性为隐藏,如果当前点跟前一个点ucl,lck不一样,则置当前点的ucl,lcl的值对应的前一点的ucl,lcl
   Ext grid 隐藏行
<style>
    .grid-row-hide{
         display:none
    }
</style>
    if( record.get('hideRow') && record.get('hideRow') ==true ){
        return 'grid-row-hide';
    } else {
        return 'grid-row-hide';
    }
    Ext chart 隐藏
{
type: 'line',
highlight: 'false' ,
axis: 'left',
xField: 'seq',
yField: 'yAxesValue',
title:  ytitle,
markerConfig: { type: 'circle',size: 5,radius: 3,'stroke-width': 0 } ,
style: { fill: '#0000FF' },
renderer : function (sprite, record, attributes, index, store) {
 
if ( record &&   record.get( "hideRow")  && record.get( "hideRow") == true ) {
    if ( record ) {
        attributes.fill = '#0000FF';
        attributes.size = 0;
        attributes.radius = 0;
        return attributes;
} else {
 
if ( record ) {
    attributes.fill = '#0000FF';
    attributes.size = 5;
    attributes.radius = 5;
    if(record.get('exception')){
        attributes.size = 7;
        attributes.radius = 7;
        if (   record.data.ocap == "") {
            attributes.fill = '#ff0000';
        } else   {
            attributes.fill = '#00FF00';
        }  
    }
}
    return attributes;
}
        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值