画柱形图的方法
来源:互联网 发布:足球大师 捏脸数据 编辑:程序博客网 时间:2024/05/16 03:50
画柱形图的方法
public void CImage()
{
//定义一个泛型集合,用以存放从数据库中读取的数据
List<int> iXiaoSH = new List<int>();
//定义一个泛型集合,用以存放从数据库中读取的月份
List<string> sMoth = new List<string>();
//读取Table01数据表中的各条数据,并存放在先前定义的二个集合中
SqlDataReader dr = BLL.ClassBLL.selectBLL();
while (dr.Read())
{
iXiaoSH.Add(dr.GetInt32(1));
sMoth.Add( dr.GetInt32(0).ToString());
}
dr.Close();
//创建一个长度为600,宽带为250的Bitmap实例
Bitmap bm = new Bitmap(602, 302);
//由此Bitmap实例创建Graphic实例
Graphics g;
g = Graphics.FromImage(bm);
//用Snow色彩为背景色填充此绘画图面
g.Clear(Color.Snow);
//以上是在图01中为下面绘制定位
g.DrawString(" 上海翰凌信息技术有限公司2002年度销售情况", new Font("宋体", 11), Brushes.Black, new Point(150, 10));
g.DrawString("单位:mm", new Font("宋体", 9), Brushes.Black, new Point(10, 12));
int scale = 10;
//y轴
g.DrawLine(new Pen(new SolidBrush(Color.Black), 1), 25, 30, 25, 275);
//x轴
g.DrawLine(new Pen(new SolidBrush(Color.Black), 1), 25, 275, 580, 275);
//y轴的刻度及文字
g.DrawLine(new Pen(new SolidBrush(Color.Black), 1), 25, 275, 20, 275);
g.DrawString("0", new Font("宋体", 8), Brushes.Black, new Point(5, 272));
g.DrawLine(new Pen(new SolidBrush(Color.Black), 1), 25, 225, 20, 225);
g.DrawString("5", new Font("宋体", 8), Brushes.Black, new Point(5, 222));
g.DrawLine(new Pen(new SolidBrush(Color.Black), 1), 25, 175, 20, 175);
g.DrawString("10", new Font("宋体", 8), Brushes.Black, new Point(5, 172));
g.DrawLine(new Pen(new SolidBrush(Color.Black), 1), 25, 125, 20, 125);
g.DrawString("15", new Font("宋体", 8), Brushes.Black, new Point(5, 122));
g.DrawLine(new Pen(new SolidBrush(Color.Black), 1), 25, 75, 20, 75);
g.DrawString("20", new Font("宋体", 8), Brushes.Black, new Point(5, 72));
g.DrawLine(new Pen(new SolidBrush(Color.Black), 1), 25, 30, 20, 30);
g.DrawString("25", new Font("宋体", 8), Brushes.Black, new Point(5, 27));
//循环通过数据绘制柱型图
for (int y = 0; y < sMoth.Count; y++)
{
for (int i = 0; i < iXiaoSH.Count; i++)//i * (bm.Width - 26) / iXiaoSH.Count) + 26
{
//绘制Bar图
g.DrawRectangle(Pens.Black, (i * (580 - 26) / iXiaoSH.Count) + 26, 275 - (iXiaoSH[i] * scale)-1, 580/sMoth.Count , (iXiaoSH[i] * scale)+1);
//以指定的色彩填充Bar图
g.FillRectangle(new SolidBrush(Color.Red), (i * (580 - 26) / iXiaoSH.Count) + 26+1, 275 - (iXiaoSH[i] * scale), 580 / sMoth.Count-1, (iXiaoSH[i] * scale));
//显示Bar图代表的数据
g.DrawString(iXiaoSH[i].ToString(), new Font("宋体", 9), Brushes.Black, (i * (580 - 26) / iXiaoSH.Count) + 26, 270 - (iXiaoSH[i] * scale)-10);
//x轴刻度
g.DrawLine(new Pen(new SolidBrush(Color.Black), 1), 580 / sMoth.Count, 275, 580 / sMoth.Count, 278);
}
//x轴文字
g.DrawString(sMoth[y].ToString(), new Font("宋体", 9), Brushes.Black, (y * (580 - 26) / iXiaoSH.Count) + 21 + 20,280);
}
Pen p = new Pen(Color.Black, 2);
g.DrawRectangle(p, 1, 1, 600, 300);
bm.Save(Response.OutputStream, ImageFormat.Jpeg);
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/liaolezhong/archive/2008/08/20/2801010.aspx
- 画柱形图的方法
- 画柱形图的方法
- 上的方法方法
- 方法的调用 this方法 构造方法
- 方法,构造方法,抽象方法的区别
- 方法 | 方法是什么、方法的重载、方法的递归
- 方法以及方法的使用
- jQuery方法toggleClass的方法
- javascript的字符串方法方法
- 方法,与方法的重载
- 设置背景的方法 不错的方法
- 方法大多数是大都市的方法的
- path的方法--画笔的方法
- canvas的方法--画布的基本方法
- Python的类方法,静态方法,实例方法的区别
- Python的类方法,静态方法,实例方法的区别
- main()的研究方法
- 分析死锁的方法
- php Mod rewrite test
- Win32应用程序中进程间通信方法分析与比较
- Windows Mobile下的GPS开发
- 虚拟机管理解决方案-VMware篇--转载
- 面试经历4
- 画柱形图的方法
- 面试经历5
- C# Xml中映射为类数据结构(报文)
- 用AJAX实现google输入自动完成的简单模拟(转)
- 硬件工程师基础知识
- 博客搬家了!
- 注册DirectShow Filter信息
- 面试经历6
- MyEclipse的注册码 以及jdk环境变量的配置