在图表控件中应用公式

通过使用图表控件的 Chart.DataManipulator 属性中提供的公式,可以对数据序列进行统计分析和财务分析。

使用统计公式

若要使用 Chart 对象中的统计公式对一个或多个 Series 对象进行统计分析,请使用 Chart.DataManipulator.Statistics 属性方法中的方法。有关每个公式的更多信息,请参见 Charting.StatisticFormula 或 Charting.StatisticFormula。

所有将一个或多个数据序列用作输入数据的统计方法都不能使用索引数据点。在使用统计公式方法之前,请执行以下操作:

  • 显式设置所有数据点的 XValue 属性。

  • 确保每个序列的 XValueIndexed 属性都设置为 False。

使用财务公式

若要对一个或多个 Series 对象进行财务分析,请使用 Chart.DataManipulator.FinancialFormula 方法。有关每个公式的更多信息,请参见财务公式

Dd456699.collapse_all(zh-cn,VS.140).gif应用公式

  1. 执行所有必要的数据筛选或分组操作。使用 DataManipulator 对象的 FilterGroup 方法。

    有关更多信息,请参见筛选数据对数据进行分组

  2. 对于涉及移动平均线的公式,请将 DataManipulator 对象的 StartFromFirst 属性设置为所需值。

  3. 使用 DataManipulator 类的 FinancialFormula 方法应用所选择的公式。

    每个公式都有一组以不同方式实现的特定要求。有关每个公式的详细信息,请参见相应主题。

  4. 在应用某些公式后,输出数据序列的大小与输入数据序列的大小不同。若要在同一图表中绘制这两个数据序列,可能需要进一步执行数据筛选,以确保每个输入数据点都有对应的输出数据点。

Dd456699.collapse_all(zh-cn,VS.140).gif设置 StartFromFirst 属性

由于无法为前几个数值数据点计算移动某指定时段的平均线,所以需要用 DataManipulator.StartFromFirst 属性来确定如何处理这前几个数据点。

默认情况下,StartFromFirst 设置为 False。在使用涉及移动平均线的公式时,公式会忽略前几个数据点,直至有足够的数据点计算移动平均线。例如,如果要计算 20 天移动平均线,则公式会忽略前 19 个数据点,因为在第 20 天之前没有足够的数据点计算 20 天移动平均线。不过,如果 StartFromFirst 设置为 True,则即使没有足够的数据点,公式也会为前几个点计算平均线。这样,可以对序列中的每个输入数据点计算移动平均线。

Dd456699.collapse_all(zh-cn,VS.140).gif使用 FinancialFormula 方法

FinancialFormula 方法按以下顺序最多采用四个参数。

  • Formula Name
    用一个 FinancialFormula 枚举值指定公式的类型。例如,指定

    FinancialFormula.AccumulationDistribution

    则使用累积分布公式调用此方法。

    参数数目、输入和输出以及每个参数的要求因所选公式而异。

  • Parameters
    某些公式要求使用参数,而某些公式允许有选择地提供参数。有些公式不使用参数。

    如果公式采用多个参数,请使用以逗号分隔的字符串指定这些参数。例如,"2,true"。

  • Input Values
    用以逗号分隔的字符串指定要将公式应用到的实例化 Series 对象的名称。

    若要将特定 Y 值指定为输入值,请在序列名称后追加一个冒号,后跟该 Y 值索引。例如,"Series1:Y" 指向 Series1 中的第一个 Y 值,而 "Series1:Y2" 指向 Series1 中的第二个 Y 值。如果不指定 Y 值,则公式使用指定的序列的第一个 Y 值。

    例如:

    "Series1:Y,Series3:Y2,Series4"

  • Output Values
    (可选)用以逗号分隔的字符串指定要用于保存输出的实例化 Series 对象的名称。如果不指定输出值,则公式将第一个输出值存储在列出的第一个输入值中,依此类推。在这种情况下,如果输入值的数目小于输出值的数目,该方法会引发异常。

    若要将特定 Y 值指定为输出值,请在序列名称后追加一个冒号,后跟该 Y 值索引。例如,"Series1:Y" 指向 Series1 中的第一个 Y 值,而 "Series1:Y2" 指向 Series1 中的第二个 Y 值。如果不指定 Y 值,则公式使用指定的序列的第一个 Y 值。

    例如,"Series1:Y,Series4"。

请参见

参考

System.Windows.Forms.DataVisualization.Charting

System.Web.UI.DataVisualization.Charting

其他资源

数据绑定和操作