时间:2016-02-16 03:17 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【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;
}
}
}
关于asp.net中生成饼状与柱状图实例的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【ASP】ASP.NET中内嵌页面代码的一个问题-NET-内
- 【As】Asp.net中的页面乱码的问题-sp--pn-ne-et
- 【增加记录】asp.net中获取新增加记录的ID Access
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
