写好的方法直接调用
public System .Drawing.Image DrawZhuTu(string sql0, string sql1)
//获取相关数据
DbUtil db = new DbUtil();
SqlDataReader dr =null;
dr = db.exeDataReader(sql0);
int max = 0;
int min = 0;
while (dr.Read()) {
max =Convert.ToInt32( dr[0].ToString());
min = Convert.ToInt32(dr[1].ToString());
}
dr.Close();
System.Data.DataTable table1=new DataTable();
table1= db.exeDataSet(sql1).Tables[0];
db.close();
int rowNum = table1.Rows.Count;
int[] ShuZhi = new int[rowNum];
string[] RQ_Year = new string[rowNum];
string[] RQ_Day = new string[rowNum];
string[] RQ_Yue = new string[rowNum];
for (int i = 0; i < rowNum; i++) {
RQ_Year[i] = Convert.ToDateTime(table1.Rows[i][0].ToString()).Year.ToString();//获取横坐标的时间
RQ_Yue[i] = Convert.ToDateTime(table1.Rows[i][0].ToString()).Month.ToString();
RQ_Day[i] = Convert.ToDateTime(table1.Rows[i][0].ToString()).Day.ToString();
ShuZhi[i] = Convert.ToInt32(table1.Rows[i][1].ToString());
}
db.close();
//开始绘制图线
int height = 500, width = 1300;
System.Drawing.Bitmap image = new System.Drawing.Bitmap(width, height);
//创建Graphics类对象
Graphics g = Graphics.FromImage(image);
try
{
//清空图片背景色
g.Clear(Color.White);
System.Drawing.Font font = new System.Drawing.Font("Arial", 9, FontStyle.Regular);
System.Drawing.Font font1 = new System.Drawing.Font("宋体", 20, FontStyle.Regular);
System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new System.Drawing.Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.Blue, 1.2f, true);
g.FillRectangle(Brushes.WhiteSmoke, 0, 0, width, height);
Brush brush1 = new SolidBrush(Color.Blue);
//画图片的边框线
g.DrawRectangle(new Pen(Color.Blue), 0, 0, image.Width - 4, image.Height - 4);
Pen mypen = new Pen(brush, 1);
//绘制线条
//绘制纵向线条
int x = 80;
for (int i = 0; i < 30; i++)
{
g.DrawLine(mypen, x, 80, x, 380);
x = x + 40;
}
Pen mypen1 = new Pen(Color.Blue, 2);
g.DrawLine(mypen1, 80, 80, 80, 380);
//绘制横向线条
int y = 80;
for (int i = 0; i <10; i++)
{
g.DrawLine(mypen, 80, y, 1280, y);
y = y + 30;
}
g.DrawLine(mypen1, 80, y, 1280, y);
//y轴数值
int[] Y_zhi ={ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 };
y = 370;
for (int i = 0; i < 11; i++) {
g.DrawString(Y_zhi[i].ToString(), font, Brushes.Red, 50, y);
y = y - 30;
}
//x轴数值
x = 110;
for (int i = 0; i < rowNum; i++) {
g.DrawString(RQ_Year[i].ToString(), font, Brushes.Red, x,380);
g.DrawString("年", font, Brushes.Red, x, 395);
g.DrawString(RQ_Yue[i].ToString(), font, Brushes.Red, x, 410);
g.DrawString("月", font, Brushes.Red, x, 425);
g.DrawString(RQ_Day[i].ToString(), font, Brushes.Red, x, 440);
g.DrawString("日", font, Brushes.Red, x, 455);
x = x + 40;
}
//显示柱状效果
int[] X_zhi=new int[rowNum];
for(int i = 0; i < rowNum; i++){
X_zhi[i] = (ShuZhi[i] - 0) * 30 / 10;
}
x = 110;
for (int i = 0; i < rowNum; i++) {
SolidBrush mybrush = new SolidBrush(Color.Red);
g.FillRectangle(mybrush, x, 380 - X_zhi[i], 20, X_zhi[i]);
x = x + 40;
}
}
catch (Exception oe)
{
}
return image;
}