·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> 折线统计图

折线统计图

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

折线统计图

数据库代码同 柱状统计图。

Default.aspx页面代码

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data.SqlClient;using System.Configuration;using System.Drawing;using System.IO;using System.Drawing.Drawing2D;using System.Data;public partial class LineTJImage : System.Web.UI.Page{    public string connStr = ConfigurationManager.ConnectionStrings["VisitCountConnectionString"].ToString();    PRotected void Page_Load(object sender, EventArgs e)    {        DrawLinearGradient();    }    //访问人数统计    public int Total()    {        int result = -1;        string sql = "select count(1) from VisiteCount";        SqlConnection conn = new SqlConnection(connStr);        conn.Open();        SqlCommand cmd = new SqlCommand(sql, conn);        result = Convert.ToInt32(cmd.ExecuteScalar());        cmd.Dispose();        conn.Close();        return result;    }    //柱形图    public void DrawLinearGradient()    {        int width = 600, height = 400;        Bitmap image = new Bitmap(width,height);        Graphics g = Graphics.FromImage(image);        g.Clear(Color.White);        //画矩形        g.FillRectangle(Brushes.WhiteSmoke, new Rectangle(0, 0, width, height));        LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0,0,width,height),Color.Blue,Color.BlueViolet,1.2f,true);        Font font = new Font("Arial",9,FontStyle.Regular);        Font font1 = new Font("宋体",20,FontStyle.Bold);        //写标题        g.DrawString("2013网站浏览次数统计",font1,brush,new PointF(120,30));        Pen pen = new Pen(Color.Blue);        Pen pen1 = new Pen(Color.Blue,2);        //画边框        g.DrawRectangle(pen, 0, 0, width-1, height - 1);        //设定横向起始        int x = 100;        for (int i = 0; i < 11; i++)        {            g.DrawLine(pen, x, 80, x, 340);            x += 40;        }        //画y轴线        int y = 106;        for (int i = 0; i <9; i++)        {            g.DrawLine(pen, 60, y,540,y);            y += 26;        }        g.DrawLine(pen1, 60, y, 540, y);        //画X轴线条        g.DrawLine(pen1,x-480,80,x-480,340);        //X轴        string[] n = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};        x = 62;        for (int i = 0; i < 12; i++)        {            g.DrawString(n[i],font,Brushes.Black,new PointF(x,348));            x += 40;        }        g.DrawString("人/月", new Font("宋体",10,FontStyle.Italic), Brushes.Black, new PointF(35, 348));        //y轴        string[] m = { "100", "90", "80", "70", "60", "50", "40", "30", "20", "10", "0" };        y = 85;        for (int i = 0; i < 11; i++)        {            g.DrawString(m[i].ToString(), font, Brushes.Black, 25, y);//设置文字内容以及输出位置            y = y + 25;        }        //将检索出的数据按一定比例绘制到图像中        int[] count = new int[12];        string sql = "";        SqlConnection conn = new SqlConnection(connStr);        conn.Open();        SqlDataAdapter da;        DataSet ds = new DataSet();        for (int i = 0; i < 12; i++)        {            sql = @"select count(1) as count,Month(loginTime) as month from VisiteCount where YEAR(loginTime)=2013 and MONTH(loginTime)=" + (i + 1) + " group by MONTH(loginTime)";            da = new SqlDataAdapter(sql, conn);            da.Fill(ds, i.ToString());            if (ds.Tables[i].Rows.Count == 0)            {                count[i] = 0;            }            else            {                //count[i] = Convert.ToInt32(ds.Tables[i].Rows[0][0].ToString())*100/Total();                count[i] = Convert.ToInt32(ds.Tables[i].Rows[0][0].ToString());            }        }        x = 70;        Point[] points = new Point[12];        for (int i = 0; i < 12; i++)        {            //g.DrawLine(pen            //g.DrawLine(pen, x, 340 - count[i] * 26 / 10, 20, count[i] * 26 / 10);            points[i] = new Point(x, 340 - count[i] * 26 / 10);            x += 40;        }        g.DrawLines(pen,points);        MemoryStream ms = new MemoryStream();        image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);        Response.ClearContent();        Response.ContentType = "image/Jpeg";        Response.BinaryWrite(ms.ToArray());    }}
View Code