CChart庫是Micorsoft Windows平臺上一個基于C++的二維、三維數(shù)據(jù)可視化函數(shù)庫,主要用于數(shù)據(jù)曲線的繪制。CChart庫的特點用一句話概括,就是“功能強(qiáng)悍,調(diào)用簡單”。 首先是功能足夠全面,足夠強(qiáng)大;然后是對用戶代碼的簡化做到極致,使用方便。
國產(chǎn)精品C++數(shù)據(jù)可視化庫,可以繪制多種二維、三維曲線,包括折線圖、等高線圖、云圖、餅圖、柱圖、散點圖、面積圖、直方圖、極線圖、甘特圖、雷達(dá)圖、瀑布圖等,具有非常全面的功能。而且CChart內(nèi)部選項極為豐富,無論是曲線本身,還是標(biāo)題、坐標(biāo)軸、圖例、背景等部分,都有大量的選項可供設(shè)置。
CChart詳細(xì)介紹:
在追求功能的同時,CChart在簡化調(diào)用方面做到了極致,一般只用幾句代碼就可以畫出漂亮的圖像。這一點可以說不僅勝過絕大部分非商業(yè)的圖表庫或者控件,甚至不輸于大部分商業(yè)圖表軟件。
當(dāng)然無論怎么努力,總有不能滿足的要求。CChart的內(nèi)核功能相當(dāng)強(qiáng)大,易于擴(kuò)展,可以通過定制的方式滿足各種特殊要求。
CChart界面美觀大方。一般沒有專門設(shè)置的情況下,默認(rèn)界面非常簡潔,但也相當(dāng)美觀。如果針對各個部分進(jìn)行設(shè)置,CChart的界面可以變得多姿多彩。
尤其值得一提的是CChart內(nèi)置鍵盤鼠標(biāo)的消息響應(yīng),各種類型的圖像都具有完善的交互功能,可以很方便地在運(yùn)行狀態(tài)下修改圖像的顯示狀態(tài)。
CChart內(nèi)部主要采用GDI進(jìn)行圖像繪制,只在極少的情況下調(diào)用GDI+作為補(bǔ)充,內(nèi)部繪圖一般都采用PolyLine等打包處理的API函數(shù),基本不對單個像素操作,充分保證了繪圖的速度。
CChart采用Win32API進(jìn)行開發(fā),沒有使用任何諸如MFC、WTL、QT等框架,當(dāng)然在這些框架下使用完全沒有問題,這樣最大程度上保證了適用范圍。同樣的理由,由于采用的是Win32API,沒法做到跨平臺,Linux下是不能用的。
CChart主要的目標(biāo)平臺是VC。除此之外,目前CChart已經(jīng)可以應(yīng)用在Borland C++ Builder、Borland Delphi、Visual Basic、網(wǎng)絡(luò)瀏覽器、甚至是易語言等開發(fā)平臺上。CChart 3.0.0.1版。
針對大數(shù)據(jù)量進(jìn)行了特別優(yōu)化,千萬量級數(shù)據(jù)點的顯示迅捷如飛,同時通過了多種工具的內(nèi)存泄漏檢測,完全可以滿足工業(yè)級應(yīng)用。
按一些朋友提出的建議進(jìn)行了修改,從實際應(yīng)用出發(fā)的需求,應(yīng)該比本人閉門造車要好一些吧。
里面包含一個壓力測試的工程,測試表明在百萬數(shù)據(jù)點的時候CChart工作很流暢,大家可以試一試。
新增數(shù)據(jù)處理功能,包括線性變換、微積分、濾波、擬合等方面。
由于功能改進(jìn)較大,大版本號增加到3.
更新日志:
2013.10.07
CChart 3.0.0.1版本完成。
因功能進(jìn)化幅度較大,主版本號增加到3。
主要針對大數(shù)據(jù)量進(jìn)行了代碼優(yōu)化,千萬至億量級數(shù)據(jù)輕松繪制,迅捷如飛。
修改當(dāng)線粗大于1的情況下,線型不起作用的的Bug(這其實應(yīng)該是微軟GDI的Bug,而不是CChart的Bug)。
2013.09.30
CChart 2.5.1.6版本完成。
內(nèi)部功能優(yōu)化,主要針對共享X軸視圖。
2013.09.24
CChart 2.5.1.5版本完成。
修正數(shù)據(jù)對話框雙擊的一個Bug,感謝網(wǎng)友songhuangong發(fā)現(xiàn)這個Bug。代碼內(nèi)部細(xì)節(jié)修改。
2013.09.20
CChart 2.5.1.4版本完成。
修改在系列教程編制過程中發(fā)現(xiàn)的小Bug,修改CChart包裝類對對話框支持存在的問題。
2013.09.13
CChart 2.5.1.2版本完成。
把等高線圖和云圖集成進(jìn)包裝類。
2013.09.12
CChart 2.5.1.1版本完成。
新增瀑布圖。
修正非負(fù)數(shù)據(jù)的坐標(biāo)范圍從負(fù)數(shù)開始的小bug,修正發(fā)現(xiàn)的其它bug。
對易語言的支持測試成功。
庫文件說明:
CChart完整發(fā)布的載體形式是一個7Zip壓縮文件,里面有三個目錄Document、SourceAPI、Samples。其中Samples目錄中包含兩個使用例子FullTestAPI、TestChartWnd,外面還有一個clean.bat文件,用于隨時清除VC產(chǎn)生的垃圾文件。
Document目錄內(nèi)是說明文檔,也就是本文件,@_@。
CChart庫的主要內(nèi)容都在SourceAPI目錄中,庫的源代碼位于SourceAPI\Plot目錄下,編譯好的靜態(tài)庫Plotd.lib和Plot.lib分別位于SourceAPI\Debug和SourceAPI\Release目錄下,注意這兩個文件有可能不小心被clean.bat清除掉。
SourceAPI目錄下有一個VC6的工作區(qū)文件Plot.dsw,這個工作區(qū)包含兩個工程文件,Plot.dsp是靜態(tài)庫的工程文件,TestAPI.dsp是一個小小的測試用工程文件,本人開發(fā)時全用它。TestAPI中全面展示了原始編程方法的所有要點,用戶代碼全部用注釋行和注釋符號包圍。
FullTestAPI目錄下是一個較大的測試文件,較全面展示了CChart各個繪圖類的使用,采用的編程方法是原始編程方法。為了適應(yīng)各種不同的Chart類型,里面建立的是一個Chart指針(Chart類實際上就是CPlotImpl類的typedef),而不是類對象。Chart是一個層次較高的類,所有的繪圖類都是其子類。對于具體的Chart對象,采用new的方式建立,這和TestAPI中的使用方式略有區(qū)別,當(dāng)然實際效果是一樣的。
TestChartWnd目錄下也是一個測試文件,向大家展示了窗口類的編程方法,非常的簡單方便。