asp.net生成饼图

利用.net相关类生成如下饼图,步骤如下:

 

第一步:建立如下表格:

字段名称

类型

说明

ID

自动编号

主键 ,递增

YF

数字

销售月份

SL

数字

销量

 

第二步:初始化表格数据:

ID

YF

SL

1

1

12

2

2

5

3

3

7

4

4

20

5

5

16

6

6

10

7

7

19

8

8

8

9

9

7

10

10

13

11

11

11

12

12

15

 

 

第三步:定义一个类,封装两个方法,代码如下:

using System;

using System.Web;

using System.Drawing;

using System.Data;

 

/// <summary>

///ObtainColor 的摘要说明

/// </summary>

public class ObtainColor

{

    public static Color GetColor(int itemIndex)

    {

        Color MyColor;

        int i = itemIndex;

        switch (i)

        {

            case 0:

                MyColor = Color.Green;

                return MyColor;

            case 1:

                MyColor = Color.Red;

                return MyColor;

            case 2:

                MyColor = Color.Yellow;

                return MyColor;

            case 3:

                MyColor = Color.Blue;

                return MyColor;

            case 4:

                MyColor = Color.Orange;

                return MyColor;

            case 5:

                MyColor = Color.Aqua;

                return MyColor;

            case 6:

                MyColor = Color.SkyBlue;

                return MyColor;

            case 7:

                MyColor = Color.DeepPink;

                return MyColor;

            case 8:

                MyColor = Color.Azure;

                return MyColor;

            case 9:

                MyColor = Color.Brown;

                return MyColor;

            case 10:

                MyColor = Color.Pink;

                return MyColor;

            case 11:

                MyColor = Color.BurlyWood;

                return MyColor;

            case 12:

                MyColor = Color.Chartreuse;

                return MyColor;

            default:

                MyColor = Color.Pink;

                return MyColor;

        }

    }

 

    public static void GetBitmap(DataSet ds ,HttpResponse res)

    {       

        int[] iXiaoSH = new int[12];

        //定义一个数组,用以存放从数据库中读取的销售数据

        string[] sMoth = new string[12];

        //定义一个数组,用以存放从数据库中读取的销售月份s

        int iIndex = 0;

        DataTable dt = ds.Tables[0];

        for (int i = 0; i < dt.Rows.Count; i++)

        {

            iXiaoSH[iIndex] = Convert.ToInt32(dt.Rows[iIndex][0]);

            sMoth[iIndex] = dt.Rows[iIndex][1].ToString() + "";

            iIndex++;

        }

        Bitmap bm = new Bitmap(600, 300);   //创建一个长度为600,宽带为300Bitmap实例

        Graphics g;

        g = Graphics.FromImage(bm);

        g.Clear(Color.Snow);

        //在绘画图面的指定位置,以指定的字体、指定的颜色绘制指定的字符串。即为图表标题

        g.DrawString("××公司××××年度销售情况一览表", new Font("宋体", 16), Brushes.Black, new Point(5, 5));

 

        Point myRec = new Point(515, 30);

        Point myDec = new Point(540, 30);

        Point myTxt = new Point(565, 30);

        g.DrawString("单位:万套", new Font("宋体", 9), Brushes.Black, new Point(515, 12));

        for (int i = 0; i < sMoth.Length; i++)

        {

            g.FillRectangle(new SolidBrush(ObtainColor.GetColor(i)), myRec.X, myRec.Y, 20, 10);   //填充小方块

            g.DrawRectangle(Pens.Black, myRec.X, myRec.Y, 20, 10);    //绘制小方块

            g.DrawString(sMoth[i].ToString(), new Font("宋体", 9), Brushes.Black, myDec);   //绘制小方块右边的文字

            g.DrawString(iXiaoSH[i].ToString(), new Font("宋体", 9), Brushes.Black, myTxt);

            myRec.Y += 15;

            myDec.Y += 15;

            myTxt.Y += 15;

        }

        //以下代码是根据从数据库中得到的数值大小,绘制扇型,并以相应色彩填充扇型,//从而构成图01中的Pie

        int iTatal = 0;

        float fCurrentAngle = 0;

        float fStartAngle = 0;

        for (int i = 0; i < iXiaoSH.Length; i++)

        {

            iTatal = iTatal + iXiaoSH[i];

        }

        for (int i = 0; i < iXiaoSH.Length; i++)

        {

            //以下代码是获得要绘制扇型的开始角度

            if (i == iXiaoSH.Length - 1)

            {

                fCurrentAngle = 360 - fStartAngle;

            }

            else

            {

                int iTemp = iXiaoSH[i];

                fCurrentAngle = (iTemp * 360) / iTatal;

            }

            //根据参数绘制扇型

            g.DrawPie(Pens.Black, 100, 40, 250, 250, fStartAngle, fCurrentAngle);

            //以指定色彩填充绘制的扇型

 

            g.FillPie(new SolidBrush(ObtainColor.GetColor(i)), 100, 40, 250, 250, fStartAngle, fCurrentAngle);

            fStartAngle += fCurrentAngle;

        }

 

        //画出图片的边框

        Pen p = new Pen(Color.Black, 2);

        g.DrawRectangle(p, 1, 1, 598, 298);

 

        //向客户端输出数据流,并以此数据流形成Jpeg图片

        //bm.Save ( Response.OutputStream , System.Drawing.Imaging.ImageFormat.Jpeg ) ;

        System.IO.MemoryStream ms = new System.IO.MemoryStream();

        bm.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

        res.ClearContent();

        res.ContentType = "image/Gif";

        res.BinaryWrite(ms.ToArray()); 

    }

}

 

第四步:在aspx页面上调用,生成饼图

<%

//自己封装的类,网友自己实现生成一个DataSet对象

//生成DataSet对象的sql语句:SELECT YF ,SL FROM MonthSale ORDER BY YF

ComInput ci = ComInput.getComInput();        

String sql = TranslateSQL.GetSqlFormXML("XML.CUSTOMERS.test3", ci, Cache);

DataSet ds = DBTools.GetDBManager().Query(sql);

 

ObtainColor.GetBitmap(ds, Response);

%>

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ASP.NET是一种用于构建Web应用程序的开发框架,而Echarts是一个基于HTML5 Canvas的数据可视化图表库。二者结合使用可以实现在ASP.NET网站中展示丰富的数据图表。 在ASP.NET中使用Echarts可以按照以下步骤进行: 1. 引入Echarts的相关资源文件。将Echarts的JavaScript文件和样式表文件引入到ASP.NET网页中。 2. 在ASP.NET网页中定义一个容器元素,用于展示Echarts图表。可以使用HTML的<div>标签或者ASP.NET的控件进行定义。 3. 在后台代码中获取数据并进行整理。根据项目需要,可以从数据库、API接口或其他数据源中获取数据,并对数据进行处理和整理,以便能够被Echarts接受和展示。 4. 在后台代码中生成Echarts配置选项。根据数据的特点和需求,通过后台代码生成Echarts所需的配置选项。这些选项包括图表类型、数据系列、坐标轴设置、图例设置、样式设置等。 5. 在前端代码中使用Echarts初始化图表。将生成的Echarts配置选项以JSON格式传递给前端JavaScript代码,并使用Echarts提供的API在容器元素中初始化图表。 6. 可选的交互和动态更新。通过Echarts提供的API,可以实现一些交互功能,比如图表的缩放、拖拽等。同时,根据项目需求,可以通过前端和后台的数据交互,实现图表的动态更新。 通过以上步骤,就可以在ASP.NET网站中使用Echarts实现数据图表的展示。这样的组合可以提供丰富的可视化效果,并帮助用户更直观地理解和分析数据。 ### 回答2: ASP.NET ECharts是一种基于ASP.NET框架的数据可视化工具,它主要用于在网页中展示各种图表类型,如折线图、柱状图、饼图等。ASP.NET是一种用于构建Web应用程序的开发框架,而ECharts是一款开源的JavaScript图表库,通过将两者结合使用,我们可以方便地在ASP.NET网页中实现图表的展示和数据的可视化。 使用ASP.NET ECharts可以简化图表的创建过程,开发者只需要编写少量的代码,就可以生成漂亮而且交互性强的图表。ASP.NET ECharts的优点之一是它支持多种图表类型和丰富的图表样式,开发者可以根据需求选择合适的图表类型来展示数据。此外,ASP.NET ECharts还支持动态更新数据和自定义样式,可以根据用户交互实时更新图表数据,以及设置图表的颜色、字体等样式。 ASP.NET ECharts的使用步骤通常包括以下几个方面:首先,需要在ASP.NET项目中引入ECharts的引用文件,以确保能够正确使用ECharts的功能。然后,开发者可以在网页中创建一个容器,用于放置图表。接下来,通过编写相关的代码,如数据处理和图表配置,可以生成具体的图表。最后,将生成的图表绘制到容器中,并可以添加交互事件,实现对图表的操作。 通过使用ASP.NET ECharts,开发者可以在ASP.NET项目中快速、简便地实现数据可视化,提升用户体验和数据展示效果。无论是企业统计报表、数据分析,还是个人博客或网页展示,ASP.NET ECharts都是一个强大且灵活的选择。 ### 回答3: ASP.NET是一种用于构建Web应用程序和网站的开发框架,而ECharts是一个功能丰富的JavaScript图表库。ASP.NET ECharts是将这两个技术结合起来使用的方式。 在ASP.NET中使用ECharts可以实现数据可视化,使数据以直观的图表形式展示给用户。通过使用ECharts的各种图表类型,如折线图、柱状图、饼图等,可以将数据进行可视化呈现,帮助用户更清晰、更直观地理解数据。此外,ECharts还支持数据的动态更新和交互式操作,用户可以根据需要查看特定时间段的数据,与图表进行交互,提供更好的用户体验。 ASP.NET ECharts的优势包括易于使用和上手,因为ECharts提供了丰富的文档和示例,使开发人员能够快速了解和使用该图表库。同时,由于ECharts基于JavaScript,可以在多种浏览器和设备上运行,为用户提供跨平台的支持。 ASP.NET ECharts的应用场景包括但不限于数据可视化报表、统计图表、实时监测系统等。例如,在电商网站中,可以使用ECharts展示销售数据的柱状图或折线图,供管理员了解销售情况并做出决策。在金融行业,可以通过ECharts实现股票行情的实时监测和展示。 总之,ASP.NET和ECharts的结合为开发人员提供了一种可视化数据的强大工具,可以使Web应用程序更具交互性和用户友好性,更好地满足用户的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值