[ASP.Net][C#].Net Framework 绘制统计图表的利器

在古早古早的时代,如果遇到有需要绘制统计图表的需求,而且没钱买现成的图表组件的话,最惨的作法是土法炼钢式的自己把图表“刻”出来;先进“一点点”的作法可以引用Office中Excel的制图组件(ASP.Net 2.0版就可以用喔!!)。
而在.Net Framework 3.5 SP1之后,当然就首推Microsoft Chart Controls for Microsoft .NET Framework 3.5 (英文版连结在此)啦,因为它免费!!如果你有幸所使用的.Net Framework是4.0版的话(也就是使用Visual Studio 2010啦)那就更棒了,因为它内建!!




在古早古早的时代,如果遇到有需要绘制统计图表的需求,而且没钱买现成的图表组件的话,最惨的作法是土法炼钢式的自己把图表“刻”出来;先进“一点点”的作法可以引用Office中Excel的制图组件(ASP.Net 2.0版就可以用喔!!)。
而在.Net Framework 3.5 SP1之后,当然就首推Microsoft Chart Controls for Microsoft .NET Framework 3.5 (英文版连结在此)啦,因为它免费!!如果你有幸所使用的.Net Framework是4.0版的话(也就是使用Visual Studio 2010啦)那就更棒了,因为它内建!!

image



安装好之后,在Visual Studio 2008的Toolbox中就可以看到多了Chart控件啰!! 把它拖拉到我们的页面上的话,它默认会生出以下的HTML码:


    
        
        
    
    
        
        
    



而在Design Mode中看到的则是如下的长条图:

image

再来跟大家稍微的介绍一下Chart的几个较为常用的属性:

首先要登场的是Palette属性:我们可以透过选取内建的调色盘,轻松的改变图表的配色。

image
 

再来是Chart分类下的相关属性:

image

  • Annotations:可以在图表中加入说明
  • ChartAreas:可以设定图表的外观,例如是否要以3D方式呈现、绘图的细节程度...等等
image
  • Legend:可以在图表中加入图说的部分(如下图图表的右上角)
image
  • Series:可以设定图表中数据分组的相关数据,例如数据组名称、呈现方式等等
image
  • Titles:可以设定图表的表头文字
image

还有很重要的Image分类下的设定:

image

  • AntiAliasing:可以设定要对图表中的哪些对象进行反锯齿处理。
  • Compression:设定图片的压缩率,压缩率越高失真越严重,但文件越小。
  • ImageLocation:图档的路径和文件名,需搭配ImageStorageMode使用。ChartPic为图档的前缀文件名_#SEQ(300,3)代表图片会使用流水号的方式命名,最多允许300张,之后就会再从头开始编号;而3代表了该图片生成的进程Timeout时间为三分钟,关于更详细的设定方式请参考:Image File Management (Chart Controls)。
  • ImageStorageMode:设定图片的保存方式,可以选择要保存在实际的路径中,或是透过HttpHandler显示而不进行保存的动作。
  • ImageType:图档的编码格式。
  • IsSoftShadows:阴影的绘制是否要进行柔化处理。
  • RenderType:设定图片的显示方式,可选择以ImageTag或是以BinaryStreaming的方式传输图片,还有ImageMap的方式显示,详细参数设定请参考:Chart Image Rendering (Chart Controls)。
  • TextAntiAliasingQuality:设定文字反锯齿的品质。

最后再补充一个也很重要的属性 – Appearance分类下面的BorderSkin(其实就在Palette上面啦):可以用来设定图表的外框。

image


介绍到这边,应该差不多了吧!?....什么??....数据怎么喂?总不能自己key出数据吧!? 好吧....这个真的说来话长了,就先容我只给一些小小的提示好了,之后有时间再来补充程序方面的资讯。
Chart控件跟DataGrid一样有DataSource属性可以用来设定数据来源,更可以利用在aspx页面中加入的各种DataSource(例如SqlDataSource、ObjectDataSource等等)来当作数据来源,方便吧!!!