.NET网页显示饼形图
来源:互联网 发布:如何查看域名的ns记录 编辑:程序博客网 时间:2024/05/19 10:35
既然在学习GDI+今天就乘胜追击,顺便研究了一下饼形图的实现,具体的效果和代码如下,新学习的知识,在这里留一个笔记吧算是。
数据库字段及数据如下:
。
最终呈现效果如下:
。
接下来,就不用我说了,赤裸裸的源码奉上,大家也不用矜持啦。
using System;using System.Data;using System.Configuration;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 System.Data.SqlClient;using System.Drawing ;using System.Drawing.Drawing2D ;using System.Collections;public partial class _Default : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { CreateImage(); } private void CreateImage() { //把连接字串指定为一个常量 SqlConnection Con = new SqlConnection("server=QH-20150804WJPO;uid=sa;pwd=123;database=Xianxian"); Con.Open(); string cmdtxt = "select * from tb_12"; //SqlCommand Com = new SqlCommand(cmdtxt, Con); DataSet ds = new DataSet(); SqlDataAdapter Da = new SqlDataAdapter(cmdtxt, Con); Da.Fill(ds); Con.Close(); float Total = 0.0f, Tmp; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { //转换成单精度。也可写成Convert.ToInt32 Tmp = Convert.ToSingle(ds.Tables[0].Rows[i]["Quantity"]); Total += Tmp; } //设置字体,fonttitle为主标题的字体 Font fontlegend = new Font("verdana", 9); Font fonttitle = new Font("verdana", 10, FontStyle.Bold); //背景宽 int width = 230; int bufferspace = 15; int legendheight = fontlegend.Height * (ds.Tables[0].Rows.Count + 1) + bufferspace; int titleheight = fonttitle.Height + bufferspace; int height = width + legendheight + titleheight + bufferspace;//白色背景高 int pieheight = width; Rectangle pierect = new Rectangle(0, titleheight, width, pieheight); //加上各种随机色 ArrayList colors = new ArrayList(); Random rnd = new Random(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) colors.Add(new SolidBrush(Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)))); //创建一个bitmap实例 Bitmap objbitmap = new Bitmap(width, height); Graphics objgraphics = Graphics.FromImage(objbitmap); //画一个白色背景 objgraphics.FillRectangle(new SolidBrush(Color.White), 0, 0, width, height); //画一个亮黄色背景 objgraphics.FillRectangle(new SolidBrush(Color.Beige), pierect); //以下为画饼图(有几行row画几个) float currentdegree = 0.0f; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { objgraphics.FillPie((SolidBrush)colors[i], pierect, currentdegree, Convert.ToSingle(ds.Tables[0].Rows[i]["Quantity"]) / Total * 360); currentdegree += Convert.ToSingle(ds.Tables[0].Rows[i]["Quantity"]) / Total * 360; } //以下为生成主标题 SolidBrush blackbrush = new SolidBrush(Color.Black); string title = " 各类图书销售比例调查"; StringFormat stringFormat = new StringFormat(); stringFormat.Alignment = StringAlignment.Center; stringFormat.LineAlignment = StringAlignment.Center; objgraphics.DrawString(title, fonttitle, blackbrush, new Rectangle(0, 0, width, titleheight), stringFormat); //列出各字段与得数目 objgraphics.DrawRectangle(new Pen(Color.Black, 2), 0, height - legendheight, width, legendheight); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { objgraphics.FillRectangle((SolidBrush)colors[i], 5, height - legendheight + fontlegend.Height * i + 5, 10, 10); objgraphics.DrawString(((String)ds.Tables[0].Rows[i]["BookKind"]) + " —— " + Convert.ToString(Convert.ToSingle(ds.Tables[0].Rows[i]["Quantity"]) * 100 / Total).Substring(0, 5) + "%", fontlegend, blackbrush, 20, height - legendheight + fontlegend.Height * i + 1); } //图像总的高度-一行字体的高度,即是最底行的一行字体高度(height - fontlegend.Height ) objgraphics.DrawString("图书销售总数:" + Convert.ToString(Total) + "万本", fontlegend, blackbrush, 5, height - fontlegend.Height); Response.ContentType = "image/Jpeg"; objbitmap.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); objgraphics.Dispose(); objbitmap.Dispose(); }}之前总是想着,自己一定要变得非常好,给家人最好的温情,后来吧,这份心情倒是没变,激情却没了。以前总觉得自己可以很棒,可以到处闯一闯,现在真的有点后悔离家那么远,不在父母的身边。人多的时候,感觉很落寞,人少的时候也落寞。最近心情总是忽阴忽晴,顿时感悟肆意,乱七八糟的,我也不知道我到底想要说什么,反正就是很乏很倦,睡觉会做恶梦,吃饭后还是觉得很饿,前一秒说完喜欢你,后一秒就担心我们将有变坏的关系。。。
0 0
- .NET网页显示饼形图
- .NET网页显示折线图
- asp.net 调试 无法显示该网页
- ASP.NET网页显示LED字体
- 加快.net网页的数据显示速度
- asp.net显示自己的网页图标
- 用ASP.NET在网页上显示缩略图
- 用ASP.NET在网页上显示缩略图
- 采用.net winform直接在网页上显示的监控
- 用ASP.NET在网页上显示缩略图
- 用ASP.NET在网页上显示缩略图
- ASP.NET - 演练:创建网页以显示 XML 数据
- ASP.NET - 演练:在网页上显示菜单
- Asp.net 打印web 网页 如何不显示 网址 页码
- ASP.NET - 演练:在网页上显示菜单
- ASP.NET MVC-- 在网页上显示一个时钟
- ASP.NET—— - 在网页上显示菜单
- ASP.NET网页中javascript脚本正文显示乱码问题
- mac下配置Node.js开发环境、express安装、创建项目
- delorean使用教程
- Mac-Charles(青花瓷)抓包并篡改返回数据图文详解
- 搭mongodb+zookeeper+kafka环境
- 关于unity里pbr技术和材质 unity5默认shader和传统的对比
- .NET网页显示饼形图
- 自我理解一对多,多对多关系
- JAVASCRIPT学习摘记
- JDBC驱动
- arguments.callee
- SharedPreferences的最佳实践
- 一步一步教你反向传播的例子
- 全球主要城市列表数据、API
- JAVA程序中乱码处理