RegressionLine构件生成的图线在统计学中称为“回归线”,即把每个数据放到图中对应的点中,认真检查这些点,从而确定最合适的线,使得大部分的点都靠近这条线。
RegressionLine不但可以绘制具有传统的线性回归线,还提供了一种弧形的回归线。
表 33.58. 构件信息
| Component Type | org.operamasks.faces.graph.RegressionLine |
| Component Family | org.operamasks.faces.graph.Curve |
| Component Class | org.operamasks.faces.component.graph.UIRegressionLine |
| Tag Class | org.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.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(弧线) | ||||
以下的例子介绍了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>