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

下載本文檔

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

文檔簡(jiǎn)介

1、該控件來(lái)自于CodeProject我大多的.NET程序的繪圖程序都用的是這個(gè)控件。下面是這個(gè)控件的文檔翻譯及其基本使用方法。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一個(gè)靈活的.NET繪圖庫(kù)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#畫二維線型圖像的方法嗎?這個(gè)就是高度可配置的繪圖類庫(kù),當(dāng)然,他也是非常容易用的。 Introduc

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

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

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

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

7、edGraph控件。如下圖4. 所有的ZedGraph功能都可以通過(guò)ZedGraphControl.MasterPane屬性來(lái)訪問(wèn),提供ZedGraphControl.GraphPane來(lái)引用第一個(gè)GraphPane在主MasterPane列表中。(下面會(huì)解釋這句話的意思)。5. 在Form設(shè)計(jì)器中雙擊Form(不是ZedGraphControl)。這將會(huì)放置一個(gè)Form1_Load()模板在你的代碼文件中。6. 在Form設(shè)計(jì)器中,激活Form后定位到屬性中的事件如圖,雙擊Resizes事件,這時(shí)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() 是獨(dú)立于Resize()的,所以我們能夠獨(dú)立的調(diào)用他通過(guò)Fo

9、rm1_Load() 方法。/這將保留10像素環(huán)繞控件的外部邊緣,定制這些使之適合你的需要。private void SetSize()      zedGraphControl1.Location = new Point( 10, 10 );      /保留一個(gè)小的頁(yè)面空白在控件的周圍     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 );      /利用圓型的符號(hào)生成藍(lán)色的曲線

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

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

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

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

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

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

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

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

26、;           /對(duì)圖像添加灰色網(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;            /使兩個(gè)曲線線性變細(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);            /增加符號(hào)的大小然后填充其為白色        

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);            /對(duì)坐標(biāo)軸框架添加背景傾斜填充(其實(shí)就是坐標(biāo)軸的背景圖)            / Add a background gradient fill to the axis frame            myPane.Chart.Fill = new Fill(Color.White,

溫馨提示

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

評(píng)論

0/150

提交評(píng)論