• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    asp.net中生成饼状与柱状图实例

    本文实例讲述了asp.net中生成饼状与柱状图的实现方法。分享给大家供大家参考。具体方法如下:

    一、生成图形的公共方法:

    复制代码 代码如下:
    using System;
    using System.Collections.Generic;
    using System.Text;
    //
    //using System.Data;
    //using System.Web.UI.WebControls;
    //
    using System.Drawing;
    using System.Drawing.Imaging;
     
    namespace Tools
    {
        public static class OWCImageHelp
        {
            /// summary>
            /// 动态的生成柱状图和饼状图
            /// /summary>
            /// param name="arrValueNames">行坐标要显示的字段/param>
            /// param name="arrValues">纵坐标要显示的数字/param>
            /// param name="title">标题/param>
            public static void GetZBImage(string[] arrValueNames, int[] arrValues, string title)
            {
                Bitmap objBitMap = new Bitmap(650, 300);
                Graphics objGraphics;
                objGraphics = Graphics.FromImage(objBitMap);
                objGraphics.Clear(Color.White);
                //int[] arrValues = { 40000, 32000, 24000, 30000, 36000, 28000 };
                //string[] arrValueNames = new string[] { "第一次", "第二次", "第三次", "第四次", "第五次", "第六次" };
                objGraphics.DrawString(title, new System.Drawing.Font("宋体", 16), Brushes.Blue, new PointF(5, 5));
                PointF symbolLeg = new PointF(335, 20);
                PointF descLeg = new PointF(360, 16);
                //画出说明部分的图形
                for (int i = 0; i arrValueNames.Length; i++)
                {
                    objGraphics.FillRectangle(new SolidBrush(GetColor(i)), symbolLeg.X, symbolLeg.Y, 20, 10);
                    objGraphics.DrawRectangle(Pens.Black, symbolLeg.X, symbolLeg.Y, 20, 10);
                    objGraphics.DrawString(arrValueNames[i].ToString(), new System.Drawing.Font("宋体", 10), Brushes.Black, descLeg);
                    symbolLeg.Y += 15;
                    descLeg.Y += 15;
                }
                float TotalValues = 0;
                for (int i = 0; i = arrValues.Length - 1; i++)
                {
                    TotalValues += arrValues[i];
                }
                //绘出矩形图。
                float Rectangleheight = 0;
                PointF recLeg = new PointF(12, 200 - arrValues[0] / TotalValues * 300);
                for (int i = 0; i arrValues.Length; i++)
                {
                    Rectangleheight = arrValues[i] / TotalValues * 300;
                    objGraphics.FillRectangle(new SolidBrush(GetColor(i)), (i * 35) + 15, 200 - Rectangleheight, 20, Rectangleheight + 50);
                    objGraphics.DrawRectangle(Pens.Black, (i * 35) + 15, 200 - Rectangleheight, 20, Rectangleheight + 50);
                    recLeg.Y = 200 - Rectangleheight - 14;
                    objGraphics.DrawString(arrValues[i].ToString(), new System.Drawing.Font("宋体", 10), Brushes.Blue, recLeg);
                    recLeg.X += 35;
                }
                //绘出圆形图。
                float sglCurrentAngle = 0;
                float sglTotalAngle = 0;
                for (int i = 0; i arrValues.Length; i++)
                {
                    sglCurrentAngle = arrValues[i] / TotalValues * 360;
                    objGraphics.FillPie(new SolidBrush(GetColor(i)), 220, 95, 100, 100, sglTotalAngle, sglCurrentAngle);
                    objGraphics.DrawPie(Pens.Black, 220, 95, 100, 100, sglTotalAngle, sglCurrentAngle);
                    sglTotalAngle += sglCurrentAngle;
                }
                objBitMap.Save(System.Web.HttpContext.Current.Response.OutputStream, ImageFormat.Gif);
            }
            //定义颜色。
            private static Color GetColor(int itemIndex)
            {
                Color objColor;
                if (itemIndex == 0)
                {
                    objColor = Color.Maroon;
                }
                else if (itemIndex == 1)
                {
                    objColor = Color.Red;
                }
                else if (itemIndex == 2)
                {
                    objColor = Color.Gray;
                }
                else if (itemIndex == 3)
                {
                    objColor = Color.Blue;
                }
                else if (itemIndex == 4)
                {
                    objColor = Color.Orange;
                }
                else if (itemIndex == 5)
                {
                    objColor = Color.Cyan;
                }
                else if (itemIndex == 6)
                {
                    objColor = Color.Bisque;
                }
                else if (itemIndex == 7)
                {
                    objColor = Color.Maroon;
                }
                else if (itemIndex == 8)
                {
                    objColor = Color.Maroon;
                }
                else
                {
                    objColor = Color.Blue;
                }
                return objColor;
            }
        }
    }

    二、新建生成饼状柱状图页面BZImage.aspx:
    后台:
    复制代码 代码如下:
    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 BLL;
    using Models;
    public partial class GridViewDemo_BZImage : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            GetBZIamge();
        }
        /// summary>
        /// 生成饼状柱状图
        /// /summary>
        public void GetBZIamge()
        {
            DataTable dt = BLL.StudentBLL.SelAllStudent();
            string[] rows = new string[dt.Rows.Count];
            int[] columns = new int[dt.Rows.Count];
            for (int i = 0; i dt.Rows.Count; i++)
            {
                rows[i] = dt.Rows[i]["学生姓名"].ToString();
                columns[i] = Convert.ToInt32(dt.Rows[i]["薪金"].ToString());
            }
            Tools.OWCImageHelp.GetZBImage(rows, columns, "学生薪水查询");
        }
    }

    三、显示饼状柱状图的页面:
    前台:
    复制代码 代码如下:
    table style="width: 600px" onMouseOver="over()" onMouseOut="out()">
                tr>
                 td style="height: 21px; width: 35px;" align="center">
                        img id="BZImage" src="BZImage.aspx" alt=""/>
                    /td>
                /tr>
    /table>

    希望本文所述对大家的asp.net程序设计有所帮助。

    您可能感兴趣的文章:
    • asp.net验证码图片生成示例
    • asp.net生成缩略图示例方法分享
    • asp.net中生成缩略图并添加版权实例代码
    • asp.net文件上传功能(单文件,多文件,自定义生成缩略图,水印)
    • asp.net下用Aspose.Words for .NET动态生成word文档中的图片或水印的方法
    • ASP.NET生成Google网站地图的代码
    • asp.net 生成曲线图实现代码
    • asp.net图片上传生成缩略图的注意事项
    • ASP.NET上传图片并生成可带版权信息的缩略图
    • ASP.Net页面生成饼图实例
    上一篇:Asp.Net实现404页面与301重定向的方法
    下一篇:ASP.Net页面生成饼图实例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    asp.net中生成饼状与柱状图实例 asp.net,中,生成,饼状,与,