gfreesky博客


    留下自己的脚印是一件很惬意的事:)
    博客园--美好愿望 美好生活......
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ASP.NET画图系列之实现Bar图(柱状图)

Posted on 2008-10-27 15:19  gfreesky  阅读(2363)  评论(2编辑  收藏  举报

前面已经实现了Pie和Curve图,今天我们来实现Bar,就是柱状图,这个的实现和前面2种基本上差不多,还是让我们先看看效果再说.

效果图:

下面开始页面部分:

页面最简单了,还是放一个<asp:Image ID="Image1" runat="server" />

我们看cs部分:

using System.Data.SqlClient;
using System.Drawing;
using System.Drawing.Imaging;
using SkyNet.Chart;
using SkyNet.OA.OAWebUtility;

public partial class SkyNetChart_MyBar : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

if (!IsPostBack)
{
InitChart();
}
}
private void InitChart()
{

Bar barImg
= new Bar(); //定义一个画图类实例

barImg.Title
= "2008年销售情况统计表";
barImg.TextColor
= Color.Red;
barImg.DS
= GetDSBySale(); //这里若不设置,则采用默认的

string imgPath = "../ChartImages/" + "MyBar.jpg";
ChartHelper.CreateChartByBar(barImg, imgPath, ImageFormat.Jpeg);
this.Image1.ImageUrl = imgPath;
}
private DataSet GetDSBySale()
{
string constr = ""; //这里请大家自行设置

SqlConnection con
= new SqlConnection(constr);
con.Open();
    //注意前面第一个字段对应Keys,第二个字段为Values

string cmdStr = "select CountryName,SaleSum from SaleOfCountry ";
        SqlDataAdapter da = new SqlDataAdapter(cmdStr, con);
DataSet ds
= new DataSet();
da.Fill(ds,
"SaleOfCountry");
return ds;
}

}

 

接下来我们看看Bar里面有什么:

 

Code

 

最后是一个CreateChartByBar方法,我们来看

 

 /// <summary>
/// 创建一个Bar图--柱状图
/// </summary>
/// <param name="barImg">Bar类的实例(设置标题、宽度、高度等)</param>
/// <param name="imgPath">生成Bar图的图片路径(相对路径)</param>
/// <param name="imgFormat">生成Bar图的图片格式(如:ImageFormat.Jpeg)</param>
public static void CreateChartByBar(Bar barImg, string imgPath,
    ImageFormat imgFormat)
{
try
{
if (barImg == null)
{
barImg.Title
= "Bar图统计表示例";
barImg.TextColor
= Color.Red;
}

Bitmap bmp
= barImg.CreateImage();
string savePath = HttpContext.Current.Server.MapPath(imgPath);
bmp.Save(savePath, imgFormat);
}
catch (Exception ee)
{
throw ee;
}
}


好了,效果已经出来了,大家可以拿下来自己测试下,若有什么问题请留言或Email给我

我的邮件地址是:gfreesky@gmail.com