千家信息网

asp.net中怎么生成饼状与柱状图

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇内容介绍了"asp.net中怎么生成饼状与柱状图"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一
千家信息网最后更新 2025年11月07日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
{
///


/// 动态的生成柱状图和饼状图
///

/// 行坐标要显示的字段
/// 纵坐标要显示的数字
/// 标题
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:
后台:

复制代码 代码如下:

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();
}
///


/// 生成饼状柱状图
///

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]["学生姓名"].ToString();
columns[i] = Convert.ToInt32(dt.Rows[i]["薪金"].ToString());
}
Tools.OWCImageHelp.GetZBImage(rows, columns, "学生薪水查询");
}
}


三、显示饼状柱状图的页面:
前台:

复制代码 代码如下:







"asp.net中怎么生成饼状与柱状图"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

柱状 生成 代码 宋体 内容 图形 学生 更多 知识 页面 实用 学有所成 接下来 前台 动态 后台 困境 圆形 坐标 姓名 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 gui怎么显示数据库 smc中国有限公司软件开发 河南特色软件开发出厂价 杭州压铸模具制造管理软件开发 江苏智慧党建软件开发哪儿好 关于网络安全隐患开展整改通知 网络安全成为第五空间 企业网络技术的三个阶段 穿越火线的服务器怎么下 通信网络技术专利排名 根据网络安全法规定大众传媒 网络安全十种准则 村委会网络安全宣传语 数据库语句执行快捷键 福建品牌软件开发活动方案 深圳黑犇互联网科技有限公司 锐捷网络安全基础配置 西湖论剑 网络安全大会直播 广东腾安网络技术 东塔网络安全学院要怎么学 逛逛吧互联网科技董事长袁光美 数据库支持什么语言 道路监控系统服务器 华为校招网络技术工程师 软件开发面试项目亮点 bms软件开发工程师的自我介绍 做好网络安全的标语 保障网络安全措施 数据库报错代码60 网络安全宣传专栏照片
0