Realize a pie chart
<%@ Page Language="c#" %>
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Drawing.Imaging" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<script language="c#" runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Bitmap bm = new Bitmap(600, 200);
Graphics g;
g = Graphics.FromImage(bm);
g.Clear(Color.Snow);
g.DrawString("Pie Chart", new Font("Verdana", 14), Brushes.Black, new PointF(4, 4));
int[] yaxis = new int[6];
yaxis[0] = 95;
yaxis[1] = 13;
yaxis[2] = 41;
yaxis[3] = 10;
yaxis[4] = 32;
yaxis[5] = 1;
yaxis[6] = 43;
string[] xaxis = new string[6];
xaxis[0] = "Uno";
xaxis[1] = "Due";
xaxis[2] = "Tre";
xaxis[3] = "Quattro";
xaxis[4] = "Cinque";
xaxis[5] = "Sei";
xaxis[6] = "Sette";
PointF symbolLeg = new PointF(300, 20);
PointF descLeg = new PointF(320, 16);
for (int i = 0; i<xaxis.Length; i++)
{
g.FillRectangle(new SolidBrush(GetColor(i)), symbolLeg.X, symbolLeg.Y, 20, 10);
g.DrawRectangle(Pens.Black, symbolLeg.X, symbolLeg.Y, 20, 10);
g.DrawString(xaxis[i].ToString(), new Font("Verdana", 10), Brushes.Black, descLeg);
symbolLeg.Y += 15;
descLeg.Y += 15;
}
int totalAng = 0;
float currentangle = 0;
float startangle = 0;
for (int i = 0; i<yaxis.Length; i++)
{
totalAng = totalAng + yaxis[i];
}
for (int i = 0; i<yaxis.Length; i++)
{
currentangle = yaxis[i] / totalAng * 360;
g.FillPie(new SolidBrush(GetColor(i)), 100, 40, 150, 150, startangle, currentangle);
g.DrawPie(Pens.Black, 100, 40, 150, 150, startangle, currentangle);
startangle += currentangle;
}
Pen p = new Pen(Color.Black, 2);
g.DrawRectangle(p, 1, 1, 398, 198);
bm.Save(Response.OutputStream, ImageFormat.Jpeg);
}
private Color GetColor(int itemIndex)
{
Color objColor;
switch (itemIndex)
{
case 0: objColor = Color.Blue; break;
case 1: objColor = Color.Red; break;
case 2: objColor = Color.Yellow; break;
case 3: objColor = Color.Peru; break;
case 4: objColor = Color.Orange; break;
case 5: objColor = Color.Coral; break;
case 6: objColor = Color.Gray; break;
case 7: objColor = Color.Maroon; break;
default: objColor = Color.Green; break;
}
return objColor;
}
</script>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
</form>
</body>
</HTML>
Download Code...
Print Page