ASP.Net页面生成饼图实例

444 查看

本文实例讲述了ASP.Net页面生成饼图的方法。分享给大家供大家参考。具体实现方法如下:

1.生成普通饼图:

复制代码 代码如下:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Drawing : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
int[] data = { 100,200,300,460};
Color[] colors={Color.Green,Color.Blue,Color.Yellow,Color.Tomato};
Bitmap bm = new Bitmap(400,400);
Graphics g = Graphics.FromImage(bm);
g.Clear(Color.White);
g.DrawString("饼图测试",new Font("宋体",16),Brushes.Red,new PointF(5,5));
float totalValue = 0;
foreach (int i in data)
{
totalValue += i;
}

float sweepAngle = 0;
float startAngle = 0;
int index=0;
float x = 50f;
float y = 50f;
float width = 200f;
foreach (int i in data)
{
sweepAngle=i/totalValue*360;
g.FillPie(new SolidBrush(colors[index++]),x,y,width,width,startAngle,sweepAngle);
//g.DrawPie(Pens.Black,x,y,width,width,startAngle,sweepAngle); //加边线代码
startAngle += sweepAngle;
}
bm.Save(Response.OutputStream,ImageFormat.Jpeg);
g.Dispose();
}
}

运行效果如下图所示:

2.如果饼图要加边线,就将上面代码中加注释的代码部分取消注释,如下代码所示:

复制代码 代码如下:
g.DrawPie(Pens.Black,x,y,width,width,startAngle,sweepAngle);

运行结果如下图:

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