在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#图形和图像处理 → 表示业务统计的图表控件

表示业务统计的图表控件

C#图形和图像处理

下载此实例
  • 开发语言:C#
  • 实例大小:3.00M
  • 下载次数:70
  • 浏览次数:630
  • 发布时间:2015-12-04
  • 实例类别:C#图形和图像处理
  • 发 布 人:Brial
  • 文件格式:.zip
  • 所需积分:2
 相关标签: 业务统计 图表 C#

实例介绍

【实例简介】
【实例截图】

【核心代码】

【实例简介】<br />
【实例截图】<br />
<p>
	【核心代码】
</p>
<p>
<pre class="brush:csharp;">using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using System.Drawing;
using ZedGraph;
using ZedGraph.Web;
using System.Collections.Generic;

namespace Zegraph
{

    /**/
    /// &lt;summary&gt;
    /// 显示统计图形类型
    /// &lt;/summary&gt;
    public enum AnalyticsType
    {
        Line,   //折线图
        Bar,    //柱状图
        Pie     //饼图
    };
    public partial class DrawGrap : System.Web.UI.UserControl
    {
        #region Private Attribute
        /**/
        /// &lt;summary&gt;
        /// 默认颜色种类
        /// &lt;/summary&gt;
        private List&lt;Color&gt; defaultColors = new List&lt;Color&gt;();
        /**/
        /// &lt;summary&gt;
        /// 统计的个数
        /// &lt;/summary&gt;
        private int Count;
        #endregion

        #region Public Property
        /**/
        /// &lt;summary&gt;
        /// 统计图的名称
        /// &lt;/summary&gt;
        public string Title;
        /**/
        /// &lt;summary&gt;
        /// 横轴的名称(饼图不需要)
        /// &lt;/summary&gt;
        public string XAxisTitle;
        /**/
        /// &lt;summary&gt;
        /// 纵轴的名称(饼图不需要)
        /// &lt;/summary&gt;
        public string YAxisTitle;
        /**/
        /// &lt;summary&gt;
        /// 显示的曲线类型:Line,Bar,Pie
        /// &lt;/summary&gt;
        public AnalyticsType Type;
        /**/
        /// &lt;summary&gt;
        /// 折线图和柱状图的数据源
        /// &lt;/summary&gt;
        public List&lt;PointPairList&gt; DataSource = new List&lt;PointPairList&gt;();
        /**/
        /// &lt;summary&gt;
        /// 饼图的数据源
        /// &lt;/summary&gt;
        public List&lt;double&gt; ScaleData = new List&lt;double&gt;();
        /**/
        /// &lt;summary&gt;
        /// 各段数据的颜色
        /// &lt;/summary&gt;
        public List&lt;Color&gt; Colors = new List&lt;Color&gt;();
        /**/
        /// &lt;summary&gt;
        /// 各段数据的名称
        /// &lt;/summary&gt;
        public List&lt;string&gt; NameList = new List&lt;string&gt;();
        /**/
        /// &lt;summary&gt;
        /// 用于柱状图,每个圆柱体表示的含义
        /// &lt;/summary&gt;
        public List&lt;string&gt; LabelList = new List&lt;string&gt;();
        #endregion
        protected void Page_Load(object sender, EventArgs e)
        {
            zedGraphControl.RenderGraph  = new ZedGraph.Web.ZedGraphWebControlEventHandler(zedGraphControl_RenderGraph);
        }


        private void InitDefaultColors()
        {
            defaultColors.Add(Color.Red);
            defaultColors.Add(Color.Green);
            defaultColors.Add(Color.Blue);
            defaultColors.Add(Color.Yellow);
            defaultColors.Add(Color.YellowGreen);
            defaultColors.Add(Color.Brown);
            defaultColors.Add(Color.Aqua);
            defaultColors.Add(Color.Cyan);
            defaultColors.Add(Color.DarkSeaGreen);
            defaultColors.Add(Color.Indigo);
        }
        /**/
        /// &lt;summary&gt;
        /// 如果属性为空则初始化属性数据
        /// &lt;/summary&gt;
        private void InitProperty()
        {
            InitDefaultColors();
            if (string.IsNullOrEmpty(Title))
            {
                Title = "未命名统计图";
            }
            if (string.IsNullOrEmpty(XAxisTitle))
            {
                XAxisTitle = "横轴";
            }
            if (string.IsNullOrEmpty(YAxisTitle))
            {
                YAxisTitle = "纵轴";
            }
            if (Type == AnalyticsType.Pie)
            {
                Count = ScaleData.Count;
            }
            else
            {
                Count = DataSource.Count;
            }
            if (Colors.Count == 0 || Colors.Count != Count)
            {
                Random r = new Random();
                int tempIndex = 0;
                List&lt;int&gt; tempIndexList = new List&lt;int&gt;();
                for (int i = 0; i &lt; Count; i  )
                {
                    tempIndex = r.Next(defaultColors.Count);
                    if (tempIndexList.Contains(tempIndex))
                    {
                        i--;
                    }
                    else
                    {
                        tempIndexList.Add(tempIndex);
                        Colors.Add(defaultColors[tempIndex]);
                    }
                }
            }
            if (NameList.Count == 0)
            {
                if (Type == AnalyticsType.Bar)
                {
                    for (int i = 0; i &lt; DataSource[0].Count; i  )
                    {
                        NameList.Add("第"   i.ToString()   "组");
                    }
                }
                else
                {
                    for (int i = 0; i &lt; Count; i  )
                    {
                        NameList.Add("第"   i.ToString()   "组");
                    }
                }
            }
            if (LabelList.Count == 0)
            {
                for (int i = 0; i &lt; Count; i  )
                {
                    LabelList.Add("含义"   i.ToString());
                }
            }
        }
        /**/
        /// &lt;summary&gt;
        /// 画图51-a-s-px
        /// &lt;/summary&gt;
        /// &lt;param name="webObject"&gt;&lt;/param&gt;
        /// &lt;param name="g"&gt;&lt;/param&gt;
        /// &lt;param name="pane"&gt;&lt;/param&gt;
        private void zedGraphControl_RenderGraph(ZedGraph.Web.ZedGraphWeb webObject, System.Drawing.Graphics g, ZedGraph.MasterPane pane)
        {
            InitProperty();
            GraphPane myPane = pane[0];
            myPane.Title.Text = Title;
            myPane.XAxis.Title.Text = XAxisTitle;
            myPane.YAxis.Title.Text = YAxisTitle;
            switch (Type)
            {
                case AnalyticsType.Line:
                    DrawLine(myPane);
                    break;
                case AnalyticsType.Bar:
                    DrawBar(myPane);
                    break;
                case AnalyticsType.Pie:
                    DrawPie(myPane);
                    break;
                default:
                    break;
            }
            pane.AxisChange(g);
        }

        #region Draw
        /**/
        /// &lt;summary&gt;
        /// 画折线图
        /// &lt;/summary&gt;
        /// &lt;param name="graphPane"&gt;&lt;/param&gt;
        private void DrawLine(GraphPane graphPane)
        {
            for (int i = 0; i &lt; Count; i  )
            {
                graphPane.AddCurve(NameList[i], DataSource[i], Colors[i], SymbolType.None);
            }
        }
        /**/
        /// &lt;summary&gt;
        /// 画柱状图
        /// &lt;/summary&gt;
        /// &lt;param name="graphPane"&gt;&lt;/param&gt;
        private void DrawBar(GraphPane graphPane)
        {
            for (int i = 0; i &lt; Count; i  )
            {
                graphPane.AddBar(LabelList[i], DataSource[i], Colors[i]).Bar.Fill = new Fill(Colors[i], Color.White, Colors[i]);
            }
            graphPane.XAxis.MajorTic.IsBetweenLabels = true;
            string[] labels = NameList.ToArray();
            graphPane.XAxis.Scale.TextLabels = labels;
            graphPane.XAxis.Type = AxisType.Text;
            graphPane.Fill = new Fill(Color.White, Color.FromArgb(200, 200, 255), 45.0f);
            graphPane.Chart.Fill = new Fill(Color.White, Color.LightGoldenrodYellow, 45.0f);
        }
        /**/
        /// &lt;summary&gt;
        /// 画饼图
        /// &lt;/summary&gt;
        /// &lt;param name="graphPane"&gt;&lt;/param&gt;
        private void DrawPie(GraphPane graphPane)
        {
            graphPane.Fill = new Fill(Color.White, Color.Silver, 45.0f);

            graphPane.Legend.Position = LegendPos.Float;
            graphPane.Legend.Location = new Location(0.95f, 0.15f, CoordType.PaneFraction, AlignH.Right, AlignV.Top);
            graphPane.Legend.FontSpec.Size = 20f;
            graphPane.Legend.IsHStack = false;

            for (int i = 0; i &lt; Count; i  )
            {
                graphPane.AddPieSlice(ScaleData[i], Colors[i], Color.White, 45f, 0, NameList[i]);
            }
        }
        /**/
        /// &lt;summary&gt;
        /// 如果系统出错,显示错误信息
        /// &lt;/summary&gt;
        /// &lt;param name="graphPane"&gt;&lt;/param&gt;
        /// &lt;param name="message"&gt;&lt;/param&gt;
        private void DrawMessage(GraphPane graphPane, string message)
        {
            TextObj text = new TextObj(message, 200, 200);
            text.Text = message;
            graphPane.GraphObjList.Add(text);

        }
        #endregion
    }

}</pre>
</p>
<p>
	<br />
</p>

标签: 业务统计 图表 C#

实例下载地址

表示业务统计的图表控件

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警