彩票走势图

如何使用Nevron SharePoint创建图表

原创|其它|编辑:郝浩|2012-11-06 10:14:17.000|阅读 313 次

概述:Nevron SharePoint使用一个点图表类型表示XY散点图,附加源码。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

假设你正在使用一个点的图表类型表示XY散点图,假设你的数据源有两列,X和Y - 定义数据点的X和Y坐标。同时也使这个图表中有一个单一的类别分组表达式:=Fields![RowIndex] (例如按照列来分组)。

这个代码实例创建了X和Y恒定的线,这是一般定位的X和Y坐标的平均值。代码实例根据他们所属的平均象限点来为他们着色。

要获取的 X 和 Y 的列的平均值,我们使用两个代码参数:

Name: AverageX, Expression: =AVG(Fields!X)

Name: AverageY, Expression: =AVG(Fields!Y)

下面的代码就是就是添加这个constant lines到第一个图表区域,根据它们所属的区域为这些点着色。

using System;
using System.Drawing;

using Nevron.GraphicsCore;
using Nevron.Chart;
using Nevron.ReportingServices;

namespace MyNamespace
{
    /// <summary>
    /// Sample class
    /// </summary>
    public class MyClass
    {
        /// <summary>
        /// Main entry point
        /// </summary>
        /// <param name="context"></param>
        public static void RSMain(NRSChartCodeContext context)
        {
            if (context.Document.Charts.Count == 0)
                return;

            // get the first chart in the document
            NChart chart = context.Document.Charts[0];
            if (chart.Series.Count == 0)
                return;

            // get the first point series in the chart
            NPointSeries point = chart.Series[0] as NPointSeries;
            if (point == null)
                return;

            // get the evaluated average X and Y
            double averageX = context.GetDoubleParameter("AverageX");
            double averageY = context.GetDoubleParameter("AverageY");

            // initialize quadrant colors
            Color[] quadrantColors = new Color[4];
            quadrantColors[0] = Color.Red;
            quadrantColors[1] = Color.Green;
            quadrantColors[2] = Color.Blue;
            quadrantColors[3] = Color.Yellow;

            // get the X and Y primary axes
            NAxis xAxis = chart.Axis(StandardAxis.PrimaryX);
            NAxis yAxis = chart.Axis(StandardAxis.PrimaryY);

            // add a constline for the left axis
            NAxisConstLine averageYConstLine = yAxis.ConstLines.Add();
            averageYConstLine.Value = averageY;

            // add a constline for the bottom axis
            NAxisConstLine averageXConstLine = xAxis.ConstLines.Add();
            averageXConstLine.Value = averageX;

            // colorize the data points according to quadrant
            int count = point.Values.Count;
            for (int i = 0; i < count; i++)
            {
                int quadrant = 0;
                double yValue = (double)point.Values[i];
                double xValue = (double)point.XValues[i];

                // determine quadrant
                if (yValue > averageY)
                {
                    if (xValue > averageX)
                    {
                        quadrant = 0;
                    }
                    else
                    {
                        quadrant = 1;
                    }
                }
                else
                {
                    if (xValue > averageX)
                    {
                        quadrant = 3;
                    }
                    else
                    {
                        quadrant = 2;
                    }
                }

                // set point color depending on quadrant
                point.FillStyles[i] = new NColorFillStyle(quadrantColors[quadrant]);
            }
        }
    }
}

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:慧都控件

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP