ASP.NET画图系列之实现Pie图(圆饼图)

 

ASP.NET自身提供的画图功能也是很强大的,在实际的项目中有时也会经常用到的,实现这样的功能方法很多,诸如水晶报表之类也可以实现,但有时我们只想实现单一的某些功能或许就可以考虑画图的功能了。实现画图其实并不难,这里介绍的是通过Graphics类来产生一个Bitmap对象,接下去你是直接写到页面还是生成某个图片保存至某个路径,看你自己方便了,gfreesky在这里选择了后者作为示例,如果各位朋友有什么不明白的可以留言或Email给我,我的Email:gfreesky@gmail.com

废话不多说,先看下效果:

好了,切入正题,首先页面部分

 

< form id = " form1 "  runat = " server " >
        
< div >
            
< asp:Image ID = " Image1 "  runat = " server "   />
        
</ div >
    
</ form >

后台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  =   " server=.;database=test;uid=sa;pwd= " ;
        SqlConnection con 
=   new  SqlConnection(constr);
        con.Open();
        
string  cmdStr  =   " select CountryName,SaleSum from SaleOfCountry  " ;    // 注意前面第一个字段对应Keys,第二个字段为Values
        SqlDataAdapter da  =   new  SqlDataAdapter(cmdStr, con);
        DataSet ds 
=   new  DataSet();
        da.Fill(ds, 
" SaleOfCountry " );
        
return  ds;
    }

}

 

我这里为了方便就把某些代码写到页面里了,读者请自行考虑!

SkyNet.Chart是一个命名空间,里面有Pie类,随后我将贴出,还包括我后面要讲的Curve类、Bar类等

其中的ChartHelper.CreateChartByPie(pieImg, imgPath, ImageFormat.Jpeg)方法我是在另外一个命名空间里定义的,命名空间是SkyNet.OA.OAWebUtility,随后我也会贴出

下面贴出SkyNet.Chart空间下的Pie类

Code
 

至此,Pie结束

下面贴出ChartHelper类

 

  public   class  ChartHelper
    {
        
///   <summary>
        
///  创建一个Pie图--圆饼图
        
///   </summary>
        
///   <param name="pieImg"> Pie类的实例(设置标题、宽度、高度等) </param>
        
///   <param name="imgPath"> 生成Pie图的图片路径(相对路径) </param>
        
///   <param name="imgFormat"> 生成Pie图的图片格式(如:ImageFormat.Jpeg) </param>
         public   static   void  CreateChartByPie(Pie pieImg, string  imgPath,ImageFormat imgFormat)
        {
            
try
            {
                
if  (pieImg  ==   null )
                {
                    pieImg.Title 
=   " Pie图统计表示例 " ;
                    pieImg.TitleBrush 
=  Brushes.Red;
                    pieImg.Width 
=   800 ;
                    pieImg.Height 
=   500 ;
                }
                Bitmap bmp 
=  pieImg.CreateImage();
                
string  savePath  =  HttpContext.Current.Server.MapPath(imgPath);
                bmp.Save(savePath, imgFormat);
            }
            
catch (Exception ee)
            {
                
throw  ee;
            }
        }
}

 

好到此,画图全部结束,如果以上您有看不懂的,请留言或发Email

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值