最近考察了幾個統計圖表控件包,開源的有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差,但是性能好,能適應有實時要求的數據。