33.21. <g:regressionLine>

RegressionLine构件生成的图线在统计学中称为“回归线”,即把每个数据放到图中对应的点中,认真检查这些点,从而确定最合适的线,使得大部分的点都靠近这条线。

RegressionLine不但可以绘制具有传统的线性回归线,还提供了一种弧形的回归线。

33.21.1. 构件信息

表 33.58. 构件信息

Component Typeorg.operamasks.faces.graph.RegressionLine
Component Familyorg.operamasks.faces.graph.Curve
Component Classorg.operamasks.faces.component.graph.UIRegressionLine
Tag Classorg.operamasks.faces.webapp.graph.RegressionLineTag

继承体系

+java.lang.Object

++javax.faces.component.UIComponent

+++javax.faces.component.UIComponentBase

++++org.operamasks.faces.component.graph.UICurve

+++++org.operamasks.faces.component.graph.UIRegressionLine

33.21.2. 属性

表 33.59. 属性

binding 定义类 javax.faces.component.UIComponentBase
类型 javax.el.ValueExpression(javax.faces.component.UIComponent)
是否必须 延时求值
一个值表达式,用于把该组件链接到一个ManagedBean的某个属性。
color 定义类 org.operamasks.faces.component.graph.UICurve
类型 javax.el.ValueExpression(java.lang.Object)
是否必须 延时求值
指定构件描绘图形的颜色
id 定义类 javax.faces.component.UIComponentBase
类型 java.lang.String
是否必须 延时求值
这个组件的组件标识符。这个值在最近的命名容器类型的父组件范围内,必须是唯一的。
legend 定义类 org.operamasks.faces.component.graph.UICurve
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
指定与数据对应的图例
rendered 定义类 javax.faces.component.UIComponentBase
类型 boolean(boolean)
是否必须 延时求值
一个标志,指出该组件是否要在任何随后的form提交过程中被渲染或处理。 这个属性的缺省值是true。
samples 定义类 org.operamasks.faces.component.graph.UIRegressionLine
类型 javax.el.ValueExpression(int)
是否必须 延时求值
指定构件选取样本的个数
type 定义类 org.operamasks.faces.component.graph.UIRegressionLine
类型 javax.el.ValueExpression(org.operamasks.faces.component.graph.RegressionType)
是否必须 延时求值
指定构件的类型,属性值必须是Linear(线性)或Power(弧线)

33.21.3. 构件API

33.21.4. 示例

以下的例子介绍了g:regressionLine标签常用方法,在创建jsp页面之前,需要创建为数据表提供数据的托管Bean:

@ManagedBean(scope=ManagedBeanScope.REQUEST)
public class RegressionData extends ArrayDataModel
{
    private static final Point2D[] data = {
        new Point2D.Double(2.0, 56.27),
        new Point2D.Double(3.0, 41.32),
        new Point2D.Double(4.0, 31.45),
        new Point2D.Double(5.0, 18.05),
        new Point2D.Double(6.0, 24.69),
        new Point2D.Double(7.0, 19.78),
        new Point2D.Double(8.0, 20.94),
        new Point2D.Double(9.0, 16.73),
        new Point2D.Double(10.0, 14.21),
        new Point2D.Double(11.0, 12.44),
    };

    public RegressionData() {
        super(data);
    }
}

下面是涉及RegressionLine的页面代码,在这个例子中提供了两种不同type属性的RegressionLine:

<g:scatterChart title="Regression Demo 2" showLegend="true"> 
  <g:xyDataSeries value="#{RegressionData}" var="p"> 
    <g:xyDataItem legend="Sample" x="#{p.x}" y="#{p.y}"> 
      <g:regressionLine type="Linear" legend="Linear"/> 
      <g:regressionLine type="Power" legend="Power"/> 
    </g:xyDataItem> 
  </g:xyDataSeries> 
</g:scatterChart>