求救,我有这个需求:
要求画个图个统计图数据库里面的数据成正比,
如(数据的数目是10,我查询的是条件是3和5,那结果就是3/10,1/2),然后用个条型图显示出来,请问谁有代码?谢谢
要求画个图个统计图数据库里面的数据成正比,
如(数据的数目是10,我查询的是条件是3和5,那结果就是3/10,1/2),然后用个条型图显示出来,请问谁有代码?谢谢
解决方案 »
- MVC + ADO.NET添加数据
- 如何使用jquery更改fckeditor内容,求解
- 关键字 'user' 附近有语法错误。
- Calendar 赋值(判断)问题
- 紧急求助!!!!正在终止线程的问题
- 对路径“c:\windows\system32\inetsrv\tempFile”的访问被拒绝 请高手解决
- asp.net下 允许并发的用户应该不少吧 为什么我部署到服务器上的时候 每当程序走到......
- 请教如何将String转换成char
- HyperLink 如何邦定mailto 呢,在线等
- context.Request.ApplicationPath主要是做什么的?
- 高手问题(asp.net+ word)
- 不显示删除回复显示所有回复显示星级回复显示得分回复 前台插入数据库的时候,假如文本框为空或者只有空格,是插入""还是null?
/// <summary>
/// 画图
/// </summary>
public void PK()
{
// int[] xl={12,7,5,21,29,17,23,19,20,15,11,18};
// string[] m={"1","2","3","4","5","6","7","8","9","10","11","12"};
DataTable dt=new DataTable();
dt=fun.select("select sum(Profit),day([date]) from Crm_bill Group by day([date]) Order by day([date])").Tables[0];
ArrayList a=new ArrayList();
ArrayList b=new ArrayList();
if(dt.Rows.Count>0)
{
for(int i=0;i<dt.Rows.Count;i++)
{
a.Add(Convert.ToInt32(dt.Rows[i][0].ToString().Trim()));
b.Add(dt.Rows[i][1].ToString().Trim()+"日");
// a[i]=Convert.ToInt32(dt.Rows[i][0].ToString().Trim());
// b[i]=dt.Rows[i][1].ToString().Trim()+"日";
}
}
Bitmap img=new Bitmap(700,600);
Graphics g=Graphics.FromImage(img);
g.Clear(Color.Snow);
g.DrawString("业绩曲线",new Font("楷书",16),Brushes.Black,new Point(5,5));
g.DrawLine(new Pen(Color.Red,2),50,500,60+a.Count*40,500);//横
g.DrawLine(new Pen(Color.Red,2),50,50,50,500);
// g.DrawRectangle(new Pen(Color.Brown,3),100,100,400,200);
// g.DrawLine(new Pen(Color.Black,20),new Point(150,150),new Point(150,400));
// g.DrawLine(new Pen(Color.Red,2),50,350,800,350);
// g.DrawLine(new Pen(Color.Red,2),50,30,350,350);
Point p1=new Point(50,500); for(int j=0;j<=20;j++)
{
p1.Y=500-j*20;
g.DrawLine(Pens.Red,p1,new Point(p1.X+5,p1.Y));
g.DrawString(Convert.ToString(j*2000),new Font("宋体",12),Brushes.Black,new Point(p1.X-45,p1.Y-8)); Point pa=new Point(49,50);
Point pb=new Point(45,60);
Point pc=new Point(55,60);
g.DrawLine(new Pen(Color.Red,2),pa,pb);
g.DrawLine(new Pen(Color.Red,2),pa,pc);
g.DrawString("(单位:元)",new Font("宋体",10),Brushes.Black,60,60);
// g.DrawLine(new Pens(Color.Red,1),pa,pb);
// g.DrawLine(new Pens(Color.Red,1),pa,pc);// Point[] pp={pa,pb,pc};
// g.DrawPolygon(new Pen(Color.Red,3),pp);
}
for(int i=0;i<a.Count;i++)
{
Point p=new Point(55+i*40,500);
// g.DrawLine(Pens.Red,p,new Point(p.X,p.Y-5));
g.DrawString(b[i].ToString(),new Font("宋体",10),Brushes.Black,p);
// p.X+=35;
}
Point pq=new Point(60+a.Count*40,500);
Point pw=new Point(55+a.Count*40,495);
Point pe=new Point(55+a.Count*40,505);
g.DrawLine(new Pen(Color.Red,2),pq,pw);
g.DrawLine(new Pen(Color.Red,2),pq,pe);
// g.DrawString("(单位:元)",new Font("宋体",10),Brushes.Black,60,60); for(int i=0;i<a.Count-1;i++)
{
// int aa=Convert.ToInt32(a[i]);
// Point rec=new Point(50+i*35,aa/100+200);
// Point dec=new Point(50+(i+1)*35,Convert.ToInt32(a[i+1])/100+200);
// g.DrawLine(new Pen(Color.Black),rec,dec);
// g.DrawString(a[i].ToString(),new Font("宋体",8),Brushes.Blue,rec);
Point rec=new Point(70+i*40,500);
Point dec=new Point(70+i*40,500-Convert.ToInt32(a[i])/100);
g.DrawLine(new Pen(Color.Red,25),rec,dec);
g.DrawString(a[i].ToString(),new Font("宋体",10),Brushes.Blue,new Point(55+i*40,480-Convert.ToInt32(a[i])/100));
}
img.Save(Response.OutputStream,ImageFormat.Jpeg);
img.Dispose();
g.Dispose();
}
#endregion