佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > asp.net中生成餅狀與柱狀圖實例

asp.net中生成餅狀與柱狀圖實例

熱門標(biāo)簽:電銷業(yè)務(wù) 電商新玩法 人工智能 科大訊飛語音識別系統(tǒng) 客戶服務(wù) 網(wǎng)站排名優(yōu)化 國美全國運營中心 百度AI接口

本文實例講述了asp.net中生成餅狀與柱狀圖的實現(xiàn)方法。分享給大家供大家參考。具體方法如下:

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

復(fù)制代碼 代碼如下:
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>
        /// 動態(tài)的生成柱狀圖和餅狀圖
        /// /summary>
        /// param name="arrValueNames">行坐標(biāo)要顯示的字段/param>
        /// param name="arrValues">縱坐標(biāo)要顯示的數(shù)字/param>
        /// param name="title">標(biāo)題/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:
后臺:
復(fù)制代碼 代碼如下:
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]["學(xué)生姓名"].ToString();
            columns[i] = Convert.ToInt32(dt.Rows[i]["薪金"].ToString());
        }
        Tools.OWCImageHelp.GetZBImage(rows, columns, "學(xué)生薪水查詢");
    }
}

三、顯示餅狀柱狀圖的頁面:
前臺:
復(fù)制代碼 代碼如下:
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程序設(shè)計有所幫助。

您可能感興趣的文章:
  • asp.net驗證碼圖片生成示例
  • asp.net生成縮略圖示例方法分享
  • asp.net中生成縮略圖并添加版權(quán)實例代碼
  • asp.net文件上傳功能(單文件,多文件,自定義生成縮略圖,水印)
  • asp.net下用Aspose.Words for .NET動態(tài)生成word文檔中的圖片或水印的方法
  • ASP.NET生成Google網(wǎng)站地圖的代碼
  • asp.net 生成曲線圖實現(xiàn)代碼
  • asp.net圖片上傳生成縮略圖的注意事項
  • ASP.NET上傳圖片并生成可帶版權(quán)信息的縮略圖
  • ASP.Net頁面生成餅圖實例

標(biāo)簽:南平 POS機(jī) 棗莊 攀枝花 拉薩 益陽 廈門 咸寧

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《asp.net中生成餅狀與柱狀圖實例》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    亳州市| 博野县| 墨江| 柳林县| 大同市| 孝昌县| 山西省| 板桥市| 钟祥市| 潼关县| 八宿县| 柳河县| 福清市| 唐海县| 襄汾县| 怀集县| 富蕴县| 宁都县| 玛多县| 昌吉市| 绥芬河市| 石阡县| 承德县| 镇沅| 安新县| 千阳县| 平山县| 台南县| 东辽县| 额敏县| 弋阳县| 门头沟区| 宾阳县| 佛教| 荆州市| 阜新市| 丰城市| 台东县| 五大连池市| 方正县| 鹤庆县|