画柱形图的方法
来源:互联网 发布:abp源码分析 编辑:程序博客网 时间:2024/05/17 03:59
画柱形图的方法
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);
}
- 画柱形图的方法
- 画柱形图的方法
- 上的方法方法
- 方法的调用 this方法 构造方法
- 方法,构造方法,抽象方法的区别
- 方法 | 方法是什么、方法的重载、方法的递归
- 方法以及方法的使用
- jQuery方法toggleClass的方法
- javascript的字符串方法方法
- 方法,与方法的重载
- 设置背景的方法 不错的方法
- 方法大多数是大都市的方法的
- path的方法--画笔的方法
- canvas的方法--画布的基本方法
- Python的类方法,静态方法,实例方法的区别
- Python的类方法,静态方法,实例方法的区别
- main()的研究方法
- 分析死锁的方法
- asp.net中Excel导入SQL
- SQL按条件统计
- ADC0804数模转换
- .NET 数据访问
- C/C++标准库学习资料(c/c++接口转换)
- 画柱形图的方法
- LCD16X2液晶显示模块
- 空虚无聊的工作
- 水印效果
- JBoss ERROR [URLDeploymentScanner] Incomplete Deployment listing:--- MBeans waiting for other MBeans --- 的解决办法
- Ubuntu出声了
- 超越自己,相信自己可以早日有自己的it公司
- 转---候捷-C++ 的沉迷与爱恋
- SQL SERVER中使用链接服务器访问Oralce数据库