ZedGraph的控件使用_第1頁
ZedGraph的控件使用_第2頁
ZedGraph的控件使用_第3頁
ZedGraph的控件使用_第4頁
ZedGraph的控件使用_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、該控件來自于CodeProject我大多的.NET程序的繪圖程序都用的是這個控件。下面是這個控件的文檔翻譯及其基本使用方法。A flexible charting library for .NET   By JChampion· Download source files (.NET 1.1 and .NET 2.0)· Download dll only (.NET 1.1 and .NET 2.0)· Download C# Sample Project· Download VB Sample Project&

2、#183; Download the latest versions from SourceForge一個靈活的.NET繪圖庫Looking for a way to draw 2D line graphs with C#? Here's yet another charting class library with a high degree of configurability, that is also easy to use.正在尋找利用C#畫二維線型圖像的方法嗎?這個就是高度可配置的繪圖類庫,當(dāng)然,他也是非常容易用的。 Introduc

3、tionZedGraph是一個類庫,為Windows Forms 設(shè)計的用戶控件,該控件可以通過專業(yè)的數(shù)據(jù)資料創(chuàng)建2D線、Bar和Pie圖像。該類庫提供高度的靈活性幾乎每一個圖像的部分都能由用戶修改。于此同時,通過為所有圖像的屬性提供缺省值使類庫的用法保持簡單。類庫中包括選擇合適的刻度因數(shù)范圍和基于被顯示值的的數(shù)據(jù)范圍的步長值的代碼。此外,ZedGraph 兼容于.NET 2.0和VS.NET 2005.ZeGraph 是作為開源開發(fā)工程在SourceForge被維護的。該網(wǎng)站包括該項目的wiki、文檔、更新歷史和所有的發(fā)行版本。Wiki上含有一套簡單的圖像實例由公開的代碼完成(許多的例子包括

4、C#和VB代碼)。Background    我們可以尋找到很多的繪圖類庫,但是似乎沒有一個能夠滿足我的需要。我發(fā)現(xiàn)MSCHART太詭異了,許多其他的選項都不具有可配置性但我需要達(dá)到一種精致的外觀。當(dāng)然,許多商業(yè)開發(fā)包能夠做這種花招,但是我需要某種免費的東東。由此,ZedGraph產(chǎn)生了!    這個類庫將可以產(chǎn)生各種線型、條形、圖形分割統(tǒng)計圖表在Form上,考慮到位置矩形和一些數(shù)據(jù)點(翻譯的有點詭異,沒太看明白)。ZedGraph處理二維線形或散點圖形,所彩的百分?jǐn)?shù)條形圖形,誤差條形圖像,日本燭臺圖形和圖形分割統(tǒng)

5、計圖表他現(xiàn)在還不能處理2.5D或3D表面圖形。可以通過坐標(biāo)軸標(biāo)簽、標(biāo)題、圖例標(biāo)簽、文字標(biāo)簽、箭頭、鏡像等對象修飾圖像。ZedGraphWiki 和online class documentation 提供了大量的有用的信息,針對其提供更多的信息,ZedGraph 有大量的選項沒有在這個入門文檔中提供。Using ZedGraph as a UserControl 將ZedGraph作為一個控件可由Visual Studio.NET的控件工具箱中獲取。 要創(chuàng)建ZedGraph,首先要打開Visual Studio.NET,創(chuàng)建一個新的Forms項目。打開f

6、orm設(shè)計器使其出現(xiàn)在當(dāng)前窗口,如下圖右擊工具箱->選擇項點擊瀏覽定位到 zedgraph.dll文件,并添加。一旦添加了此文件,你會看到ZedGraphControl選項在工具箱中。如下圖1. 在項目主菜單->選擇添加引用->添加ZedGraph.dll,然后點擊OK,重復(fù)這個過程添ZedGraph.Web.dll,這將包括所有的ZedGraph功能在你的工程中。2. 添加using ZedGraph;語句到你的主Form代碼中3. 在Form設(shè)計器中,從工具箱中拖拽ZedGraphControl到From上,按照你的意愿修改其大小和位置。你現(xiàn)在在你的Form中就有了一個Z

7、edGraph控件。如下圖4. 所有的ZedGraph功能都可以通過ZedGraphControl.MasterPane屬性來訪問,提供ZedGraphControl.GraphPane來引用第一個GraphPane在主MasterPane列表中。(下面會解釋這句話的意思)。5. 在Form設(shè)計器中雙擊Form(不是ZedGraphControl)。這將會放置一個Form1_Load()模板在你的代碼文件中。6. 在Form設(shè)計器中,激活Form后定位到屬性中的事件如圖,雙擊Resizes事件,這時Form1_Resize相應(yīng)的函數(shù)模板將出現(xiàn)在在代碼文件中。7. 修改Form1_Load()和

8、Form1_Resize()方法,按照下面的代碼添加CreateGraph() and SetSize() 方法。(這里假定你的控件名稱為zedGraphControl1)8. /  form 'Resize'  的事件相應(yīng)方法private void Form1_Resize( object sender, EventArgs e )      SetSize(); /SetSize() 是獨立于Resize()的,所以我們能夠獨立的調(diào)用他通過Fo

9、rm1_Load() 方法。/這將保留10像素環(huán)繞控件的外部邊緣,定制這些使之適合你的需要。private void SetSize()      zedGraphControl1.Location = new Point( 10, 10 );      /保留一個小的頁面空白在控件的周圍     zedGraphControl1.Size = new Size( ClientRectangle.Width - 20,

10、0;                                                 

11、0;   ClientRectangle.Height - 20 ); / Load事件的相應(yīng)函數(shù)private void Form1_Load( object sender, EventArgs e )      / 裝載圖像      CreateGraph( zedGraphControl1 );      /設(shè)定控件的大小填充form  &

12、#160;   SetSize(); / 創(chuàng)建圖像private void CreateGraph( ZedGraphControl zgc )      /得到GraphPane的引用     GraphPane myPane = zgc.GraphPane;       / 設(shè)置標(biāo)題      myPan

13、e.Title.Text = "My Test Graphn(For CodeProject Sample)"      myPane.XAxis.Title.Text = "My X Axis"      myPane.YAxis.Title.Text = "My Y Axis"      /生成正弦函數(shù)的數(shù)據(jù)集合   

14、60;  double x, y1, y2;      PointPairList list1 = new PointPairList();      PointPairList list2 = new PointPairList();      for ( int i = 0; i < 36; i+ )       &#

15、160;           x = (double)i + 5;             y1 = 1.5 + Math.Sin( (double)i * 0.2 );             y2 = 3.0 * ( 1.5

16、+ Math.Sin( (double)i * 0.2 ) );             list1.Add( x, y1 );             list2.Add( x, y2 );            /用

17、鉆石符合形狀生成紅色的曲線和圖例     LineItem myCurve = myPane.AddCurve( "Porsche",                  list1, Color.Red, SymbolType.Diamond );      /利用圓型的符號生成藍(lán)色的曲線

18、和圖例     LineItem myCurve2 = myPane.AddCurve( "Piper",                  list2, Color.Blue, SymbolType.Circle );      /告訴ZedGraph 去重新描繪坐標(biāo)軸當(dāng)數(shù)據(jù)變化時

19、60;    zgc.AxisChange();9. 每次添加或改變數(shù)據(jù)的時候調(diào)用AxisChange()方法。這將告訴ZedGraph去重新計算坐標(biāo)軸的范圍,(注意:這是AxisChange()的功能你可以在任何你喜歡的時候調(diào)用這個方法,他會基于當(dāng)前坐標(biāo)點數(shù)據(jù)集合來更新坐標(biāo)范圍,如果你不希望坐標(biāo)軸被重新調(diào)節(jié),你也可以避免調(diào)用AxisChange())8. 執(zhí)行效果 Enhancing the graph ZedGraph 允許你通過多種途徑更改圖形的屬性,圖像的每個部分都被打包成一個類結(jié)構(gòu)體,這個結(jié)構(gòu)體有可更改的屬性去控制圖形的輸出

20、。下面就是一些在ZedGraph中提供的類(注意這些類是XML文檔,詳細(xì)的細(xì)節(jié)中每個類請看ZedGraph documentation )  Class Description MasterPane這是一個管理多個GraphPane對象的類,繼承于PaneBase。MasterPane類的應(yīng)用是可選的,因為GraphPane類能夠直接用于單個面板。提供布局、排列和單個GraphPane對象的管理的方法 GraphPane圖像的主要類,繼承自PaneBase。包含所有其他的類作為屬性。多用于控制圖像面板的標(biāo)題、窗框架和坐標(biāo)軸框架、背景等

21、屬性。 XAxis,YAxis, Y2AxisAxis類的子類。這些類包括了很多坐標(biāo)軸顯示的形式,包括:刻度、網(wǎng)格、顏色、畫筆、字體、標(biāo)簽和類型。 Scale通過Axis類聲明的一個類實例。包括刻度范圍、步長、格式和刻度的顯示選項。由Linear,Log, Text, Date, Ordinal, Exponent,LinearAsOrdinal, and DateAsOrdinal scales的不同而不同。 Legend此類為描述位置、字體、顏色等性質(zhì)的類,用于繪制圖例 Curve

22、Item一個對應(yīng)單條曲線并包含數(shù)據(jù)的抽象基類。LineItem, BarItem, HiLowBarItem,ErrorBarItem, PieItem, StickItem,OHLCBarItem, and JapaneseCandleStickItem都繼承于此類。 CurveList一個集合類維護了一個CurveItem的對象鏈表。在鏈表中的曲線的順序控制著 Z-順序為了繪圖。在鏈表中最后的曲線將會出現(xiàn)在其她的曲線之后。 GraphObj這是一個抽象的基類,他包含了多種的追加圖像對象在一個分塊中的位置信息。TextOb

23、j,ImageObj, LineObj, ArrowObj, EllipseObj,BoxObj, and PolyObj 都繼承自GraphObj. GraphObjList一個維護GraphObj鏈表的集合類。 FontSpec包括字體信息的功能類,主要是關(guān)于圖像上字體的顏色、角度、大小、樣式、框架和字體的背景填充。每一個包含字體信息的類將會包含一個或幾個FontSpec的對象去相應(yīng)的描述相關(guān)聯(lián)的字體。 Fill包括背景顏色特性的功能類。每一個含有色彩填充能力的對象都包含一個或多個Fill對象去相應(yīng)的描述相關(guān)聯(lián)

24、的顏色填充。 Border包括邊框特性的功能類。每一個含有邊框描述能力的對象都包含一個或多個Border對象去相應(yīng)的描述相關(guān)聯(lián)的邊框線形和顏色。 Location 一個通用的類,此類處理圖像對象在圖形中的位置。 PointPair 一個封裝了一對double型數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),其表征了一個(x,y)的數(shù)據(jù)點,這是在每個CurveItem中值數(shù)組的內(nèi)部的存儲格式。 PointPairList 一個集合類維護了一個PointPair對象的數(shù)據(jù)鏈表。   XDate 此類封裝了單獨的數(shù)據(jù)時間值

25、(Double)通過訪問上面的每一個類的屬性來修改圖像。例如,如果你包括下面的代碼在你的CreateGraph()方法中, 放在前述的代碼示例之后,輸出圖像將會相應(yīng)的改變。            / 改變標(biāo)題的顏色            myPane.Title.FontSpec.FontColor = Color.Green; 

26、;           /對圖像添加灰色網(wǎng)格            myPane.XAxis.MajorGrid.IsVisible = true;            myPane.YAxis.MajorGrid.IsVisible = true

27、;            myPane.XAxis.MajorGrid.Color = Color.LightGray;            myPane.YAxis.MajorGrid.Color = Color.LightGray;          &

28、#160; /改變圖例的位置            myPane.Legend.Position = ZedGraph.LegendPos.Bottom;            /使兩個曲線線性變細(xì)            myCu

29、rve.Line.Width = 2.0F;            myCurve2.Line.Width = 2.0F;            /在曲線下填充區(qū)域            myCurve.Line.Fill = new Fi

30、ll(Color.White, Color.Red, 45F);            myCurve2.Line.Fill = new Fill(Color.White, Color.Blue, 45F);            /增加符號的大小然后填充其為白色        

31、    myCurve.Symbol.Size = 8.0F;            myCurve2.Symbol.Size = 8.0F;            myCurve.Symbol.Fill = new Fill(Color.White);     

32、60;      myCurve2.Symbol.Fill = new Fill(Color.White);            /對坐標(biāo)軸框架添加背景傾斜填充(其實就是坐標(biāo)軸的背景圖)            / Add a background gradient fill to the axis frame            myPane.Chart.Fill = new Fill(Color.White,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論