快速业务通道

asp.net生成数据饼图/柱状图

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-04-12

效果图如下:
 


 

1.Page_load事件

Bitmap objBitMap = new Bitmap(400, 200);
    Graphics objGraphics;
    objGraphics = Graphics.FromImage(objBitMap);
    objGraphics.Clear(Color.White);
    int[] arrValues = {100,135,115,125,75,120};
    string[] arrValueNames = new string[]{"一月","二月","三月","四月","五月","六月"};
    objGraphics.DrawString(" X 公司上半年销售情况",
    new Font("宋体", 16), Brushes.Black, 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 Font("宋体", 10), Brushes.Black, descLeg);
    symbolLeg.Y += 15;
    descLeg.Y += 15;
    }
    for (int i = 0; i < arrValues.Length; i++)
    {
    objGraphics.FillRectangle(new SolidBrush(GetColor(i)), (i * 35) + 15, 200 - arrValues[i], 20,
    arrValues[i] + 5);
    objGraphics.DrawRectangle(Pens.Black, (i * 35) + 15, 200 - arrValues[i], 20, arrValues[i] + 5);
    }
    float sglCurrentAngle = 0;
    float sglTotalAngle = 0;
    float sglTotalValues = 0;
    for (int i = 0; i <= arrValues.Length - 1; i++)
    {
    sglTotalValues += arrValues[i];
    }
    for (int i = 0; i < arrValues.Length; i++)
    {
    sglCurrentAngle = arrValues[i] / sglTotalValues * 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(Response.OutputStream, ImageFormat.Gif);

 

2.GetColor()函数
 

private Color GetColor(int itemIndex)
   {
    Color objColor;
    if (itemIndex == 0)
    {
    objColor = Color.Blue;
    }
    else if (itemIndex == 1)
    {
    objColor = Color.Red;
    }
    else if (itemIndex == 2)
    {
    objColor = Color.Yellow;
&

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号