ASP.NET 柱形图

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <img alt="" id="code" src="Default3.aspx"  style="cursor: pointer;" />
        </div>
    </form>
</body>
</html>
 protected void Page_Load(object sender, EventArgs e)
    {
        // 在此处放置用户代码以初始化页面
        Bitmap objBitMap = new Bitmap(1000, 600);
        Graphics objGraphics;

        objGraphics = Graphics.FromImage(objBitMap);
        objGraphics.Clear(Color.White);

        //人数除以10,绘制矩形条。
        int[] arrValues = { 50, 50, 50, 50, 100, 1200 };

        //厂区
        string[] arrValueNames = new string[] { "第一纺纱厂", "第一纺纱厂", "第一纺纱厂", "第一纺纱厂", "第一纺纱厂", "第一纺纱厂" };

        //标题
        objGraphics.DrawString("三和集团人力资源柱形分析图",
            new Font("宋体", 16), Brushes.Black, new PointF(100, 5));

        PointF symbolLeg = new PointF(600, 20);

        //竖直条
        for (int i = 0; i < arrValues.Length; i++)
        {
            objGraphics.FillRectangle(new SolidBrush(GetColor(i)), (i * 80) + 15, 200 - arrValues[i], 20,
                arrValues[i] + 5);
            objGraphics.DrawRectangle(Pens.Black, (i * 80) + 15, 200 - arrValues[i], 20, arrValues[i] + 5);
            objGraphics.DrawString(arrValueNames[i].ToString(), new Font("宋体", 10), Brushes.Black, new PointF((i * 75) + 15, 50));
            objGraphics.DrawString(arrValueNames[i].ToString(), new Font("宋体", 10), Brushes.Black, new PointF((i * 75) + 15, 250));
        }

        float sglTotalValues = 0;
        for (int i = 0; i <= arrValues.Length - 1; i++)
        {
            sglTotalValues += arrValues[i];
        }


        //饼状图
        //for (int i = 0; i < arrValues.Length; i++)
        //{
        //    sglCurrentAngle = arrValues[i] / sglTotalValues * 360;
        //    objGraphics.FillPie(new SolidBrush(GetColor(i)), 220, 95, 100, 100, sglTotalAngle, sglCurrentAngle);
        //    objGraphics.DrawPie(Pens.Black, 220, 95, 100, 100, sglTotalAngle, sglCurrentAngle);
        //    sglTotalAngle += sglCurrentAngle;
        //}

        System.IO.MemoryStream ms = new System.IO.MemoryStream();
        objBitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
        Response.ClearContent();
        Response.ContentType = "image/Gif";
        Response.BinaryWrite(ms.ToArray());

    }

    #region 柱形图颜色
    private Color GetColor(int itemIndex)
    {
        Color objColor;
        if (itemIndex % 2 == 0)
        {
            objColor = Color.Yellow;
        }
        else if (itemIndex % 3 == 0)
        {
            objColor = Color.Purple;
        }

        else if (itemIndex % 5 == 0)
        {
            objColor = Color.Brown;
        }

        else if (itemIndex % 7 == 0)
        {
            objColor = Color.Maroon;
        }
        else
        {
            objColor = Color.Blue;
        }
        return objColor;
    }
    #endregion


实例:

// 在此处放置用户代码以初始化页面
        Bitmap objBitMap = new Bitmap(5000, 600);
        Graphics objGraphics;

        objGraphics = Graphics.FromImage(objBitMap);
        objGraphics.Clear(Color.White);


        ZSql s = new ZSql();

        string sql = "select name,(select count(*) from employee where plantId =plant.Id";
        //开始时间 
        if (!string.IsNullOrEmpty(DBHelper.strChartStartDate))
        {
            sql += "  and  (FactoryTime >= '" + DBHelper.strChartStartDate + "')";
        }
        else
        {
            sql += "  and  (FactoryTime >= '1980-01-01')";
        }

        //截止时间
        if (!string.IsNullOrEmpty(DBHelper.strChartEndDate))
        {
            sql += "  and  (FactoryTime <= '" + DBHelper.strChartEndDate + "')";
        }
        else
        {
            sql += "  and  (FactoryTime <= '2080-01-01')";
        }

        sql += " )as ProNum from plant ";

        DataSet ds = s.DSet(sql);

        //标题
        objGraphics.DrawString("三和集团人力资源柱形分析图",
            new Font("宋体", 16), Brushes.Black, new PointF(500, 5));

        PointF symbolLeg = new PointF(600, 20);

        //竖直条
        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            int ProNum = int.Parse(ds.Tables[0].Rows[i]["ProNum"].ToString());
            string name = ds.Tables[0].Rows[i]["name"].ToString();

            objGraphics.FillRectangle(new SolidBrush(GetColor(i)), (i * 80) + 30, 200 - ProNum / 10, 20, ProNum / 10 + 5);
            objGraphics.DrawRectangle(Pens.Black, (i * 80) + 30, 200 - ProNum / 10, 20, ProNum / 10 + 5);

            objGraphics.DrawString(ProNum.ToString(), new Font("宋体", 10), Brushes.Black, new PointF((i * 80) + 30, 50));
            objGraphics.DrawString(name, new Font("宋体", 10), Brushes.Black, new PointF((i * 80) + 30, 250));
        }

        float sglTotalValues = 0;
        for (int i = 0; i <= arrValues.Length - 1; i++)
        {
            sglTotalValues += arrValues[i];
        }


        //饼状图
        //for (int i = 0; i < arrValues.Length; i++)
        //{
        //    sglCurrentAngle = arrValues[i] / sglTotalValues * 360;
        //    objGraphics.FillPie(new SolidBrush(GetColor(i)), 220, 95, 100, 100, sglTotalAngle, sglCurrentAngle);
        //    objGraphics.DrawPie(Pens.Black, 220, 95, 100, 100, sglTotalAngle, sglCurrentAngle);
        //    sglTotalAngle += sglCurrentAngle;
        //}

        System.IO.MemoryStream ms = new System.IO.MemoryStream();
        objBitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
        Response.ClearContent();
        Response.ContentType = "image/Gif";
        Response.BinaryWrite(ms.ToArray());

    }

    #region 柱形图颜色
    private Color GetColor(int itemIndex)
    {
        Color objColor;
        if (itemIndex % 2 == 0)
        {
            objColor = Color.Yellow;
        }
        else if (itemIndex % 3 == 0)
        {
            objColor = Color.Purple;
        }

        else if (itemIndex % 5 == 0)
        {
            objColor = Color.Brown;
        }

        else if (itemIndex % 7 == 0)
        {
            objColor = Color.Maroon;
        }
        else
        {
            objColor = Color.Blue;
        }
        return objColor;
    }
    #endregion




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ScottPlot是一个基于C #编写的绘图库,主要用于在NET框架中生成高质量的图表和数据可视化。它是开源的,简单易用,并且拥有完整的文档和示例,可以方便地集成到您的项目中。 ScottPlot可以绘制各种类型的图表,包括线图、散点图、条形图、饼图、热力图等,同时还支持添加注释、标签、图例等元素。您可以通过直接调用函数来创建图表,也可以使用现成的示例代码来扩展您的图表。 ScottPlot还提供了许多高级功能,例如自适应缩放、支持大数据集、实时动态更新等,使得它成为处理复杂数据可视化的不二选择。除此之外,ScottPlot还可以与Windows Forms、WPF、ASP.NET以及Mono框架等一系列.NET环境结合使用。 总的来说,如果您需要在.NET项目中轻松而又流畅地创建出色的图表和数据可视化,那么ScottPlot是一个值得推荐的绘图库。 ### 回答2: ScottPlot是一个专门用于绘制图表的开源C#库,它能够快速地创建各种类型的图像,如信号图、散点图、柱状图、饼图等。ScottPlot的主要特点是使用方便、性能高、可扩展性好。它可以与.NET Framework、ASP.NET和Mono Framework无缝集成,使用起来十分灵活和方便。 ScottPlot的使用方式非常简单,用户可以通过调用ScottPlot的API来进行图形绘制和数据处理。相对于其他的绘图库,它具有几个独特的特点: (1)性能优秀,可以处理大量的数据。 (2)支持多种操作和交互方式,如拖动、缩放、放大、缩小等。 (3)提供多种图标类型和样式的选择,用户可以自行设置颜色、线条样式、标签等。 (4)支持快速刷新,可以实时显示数据变化。 (5)具有良好的集成性,能够很好地与其他的编程工具和框架进行集成。 总之,ScottPlot是一款非常好用的图表库,能够方便快捷地生成各种类型的图形,可以满足用户在数据可视化方面的需求。作为一个开源的库,它更新迭代频繁,用户可以在GitHub上随时获取其最新版本。 ### 回答3: ScottPlot是一个开源的、基于.NET框架的绘图库,封装了大量的绘图功能,旨在为C#和Python编程提供极为简单和灵活的绘图解决方案。ScottPlot采用了面向对象和响应式编程思想,使用者可以轻松地绘制各种常见的图形,如折线图、散点图、热力图、柱形图等。 ScottPlot支持常见的图形元素,如标签、标题、图例等,使得用户可以快速地创建自己想要的图形。此外,ScottPlot的代码易于理解和修改,也使得用户可以根据自己的需要自定义绘图功能。ScottPlot还具有良好的性能和交互性能,在海量数据的情况下,也可以平滑地运行。 总之,ScottPlot是一个非常优秀和实用的绘图解决方案,它的灵活性、易用性和可扩展性都极高,适用于各种数据分析和数据可视化任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值