原文出處:http://hi.baidu.com/goga/blog/item/07b3024f61b8cd35aec3ab47.html
最近考察了幾個統計圖表控制項包,開源的有ZedGraph,Nplot等,但是相比之下還是ZedGraph強大,方便一些,其他的感覺還是半成品。收費的就多了,只要是商業的報表開發工具都有統計圖表的功能,水晶報表,ActiveReport,Reporting Service,不過要方便,功能單一的還是dotnetCharting。下面主要從winform使用上說說ZedGraph和dotnetCharting。
從效果上說dotnetCharting確實沒的說,水晶式效果很是炫目,這應該是其最大的賣點。為了便於開發人員學習,帶了各種效果的範例程式碼。DotnetCharting在產生統計圖的時候需要設定一個臨時目錄,用來儲存產生的統計圖的圖片,dotnetCharting的圖表效果好,很大程度上是因為它產生了圖片,然後將其顯示在介面上。當然,作為代價,它犧牲了效能。同時,它不支援縮放,雖然你可以通過更改座標軸的刻度來實現這個功能,但是效能上就差了很多。
如果你對效能要求不高,dotnetCharting是非常好的選擇。
ZedGraph最大的賣點在哪裡?應該是開源,你可以修改代碼以適應自己的需求,例如:ZedGraph在畫線型圖的時候,線條沒有使用消除鋸齒,你只要修改Line類的Default結構中的預設設定就可以了。和dotnetCharting相比,ZedGraph的效果要差一些,不過,要是自己調整的好,也還不錯,但是ZedGraph的優勢不在這裡。
由於ZedGraph是使用GDI+直接在Canvas上進行描畫,所以,效能得到了保證,如果你改變座標軸的刻度,和dotnetCharing相比,ZedGraph的反應速度是很快的。基於此,ZedGraph提供了很重要的縮放和拖動功能,你可以通過滑鼠滾輪進行方法,縮小圖表,可以通過滑鼠中鍵來拖動,非常方便。
對於類似股市的即時走勢,cpu使用率等即時變化的資料,使用ZedGraph也可以很方便地作到。ZedGraph在基於PointPairList作畫,所以你只要在PointPairList這個集合中添加新的資料,然後進行重畫就可以實現了,對於效能,上面說了,由於是直接使用GDI+,效能是比較好的,我測過400個點是沒問題的。所以,ZedGraph對於即時要求比較強的需求也是可以應對的。
總的來說,dotnetCHARTING產生的圖表效果好,但是效能方面較差,對即時要求強的需求不適應。ZedGraph開源,效果比起dotnetCHARTING差,但是效能好,能適應有即時要求的資料。