public partial class FrmMain : Form<br />{<br /> // 起始時間以毫秒為單位<br /> int tickStart = 0;<br /> public FrmMain()<br /> {<br /> InitializeComponent();<br /> }<br /> private void Form1_Load( object sender, EventArgs e )<br /> {<br /> //擷取引用<br /> GraphPane myPane = zedGraphControl1.GraphPane;<br /> //設定標題<br /> myPane.Title.Text = "即時曲線";<br /> //設定X軸解說文字<br /> myPane.XAxis.Title.Text = "時間";<br /> //設定Y軸解說文字<br /> myPane.YAxis.Title.Text = "溫度";<br /> //設定1200個點,假設每50毫秒更新一次,剛好檢測1分鐘,一旦構造後將不能更改這個值<br /> RollingPointPairList list = new RollingPointPairList( 1200 );<br /> //開始,增加的線是沒有資料點的(也就是list為空白)<br /> //增加一條名稱:Voltage,顏色Color.Bule,無符號,無資料的空線條<br /> LineItem curve = myPane.AddCurve("溫度", list, Color.Blue, SymbolType.None);<br /> timeDraw.Interval = 10; //設定timer控制項的間隔為50毫秒<br /> timeDraw.Enabled = true; //timer可用<br /> timeDraw.Start(); //開始<br /> myPane.XAxis.Scale.Min = 0; //X軸最小值0<br /> myPane.XAxis.Scale.Max = 30; //X軸最大30<br /> myPane.XAxis.Scale.MinorStep = 1;//X軸小步長1,也就是小間隔<br /> myPane.XAxis.Scale.MajorStep = 5;//X軸大步長為5,也就是顯示文字的大間隔<br /> //改變軸的刻度<br /> zedGraphControl1.AxisChange();<br /> //儲存開始時間<br /> tickStart = Environment.TickCount;<br /> }<br /> private void timer1_Tick( object sender, EventArgs e )<br /> {<br /> //確保CurveList不為空白<br /> if (zedGraphControl1.GraphPane.CurveList.Count <= 0)<br /> {<br /> return;<br /> }<br /> //取Graph第一個曲線,也就是第一步:在GraphPane.CurveList集合中尋找CurveItem<br /> LineItem curve = zedGraphControl1.GraphPane.CurveList[0] as LineItem;<br /> if (curve == null)<br /> {<br /> return;<br /> }<br /> //第二步:在CurveItem中訪問PointPairList(或者其它的IPointList),根據自己的需要增加新資料或修改已存在的資料<br /> IPointListEdit list = curve.Points as IPointListEdit;<br /> if (list == null)<br /> {<br /> return;<br /> }<br /> // 時間用秒錶示<br /> double time = ( Environment.TickCount - tickStart ) / 1000.0;<br /> // 3秒迴圈<br /> list.Add( time, Math.Sin( 2.0 * Math.PI * time / 3.0 ) );<br /> Scale xScale = zedGraphControl1.GraphPane.XAxis.Scale;<br /> if ( time > xScale.Max - xScale.MajorStep )<br /> {<br /> xScale.Max = time + xScale.MajorStep;<br /> xScale.Min = xScale.Max - 30.0;<br /> }<br /> //第三步:調用ZedGraphControl.AxisChange()方法更新X和Y軸的範圍<br /> zedGraphControl1.AxisChange();<br /> //第四步:調用Form.Invalidate()方法更新圖表<br /> zedGraphControl1.Invalidate();<br /> }<br /> private void Form1_Resize( object sender, EventArgs e )<br /> {<br /> SetSize();<br /> }<br /> private void SetSize()<br /> {<br /> // 控制始終是以10像素插入矩形從用戶端的形<br /> Rectangle formRect = this.ClientRectangle;<br /> formRect.Inflate( -10, -10 );<br /> if ( zedGraphControl1.Size != formRect.Size )<br /> {<br /> zedGraphControl1.Location = formRect.Location;<br /> zedGraphControl1.Size = formRect.Size;<br /> }<br /> }<br />
ZedGraph的一些基本一些概念
Chart
ChartBorder 圖表區域的邊框設定
ChartFill 圖表區域的背景填充
Legend 圖表的注釋標籤顯示設定項目,一組資料對應一種顏色的注釋
IsHStack 當有多個顯示項目的時候設定Y軸資料是疊加的還是分開的
Xaxis 圖表區域的X軸相關資訊設定
AxisColor 座標軸顏色
Cross 座標的原點,可以設定座標的位移程度
CrossAuto 原點自動化佈建:True的話Cross的設定就無效了。
FontSpec X軸標題字型相關資訊
Angle X軸標題字型顯示時候的角度,0為水平 90為垂直
Fill X軸標題字型填充資訊
ColorOpacity 透明度
IsScaled 設定X軸標題字型顯示大小是否根據圖的比例放大縮小
RangeMax 填充時候的最大傾斜度(有過渡色,沒試過)
RangeMin 填充時候的最小傾斜度(有過渡色,沒試過)
StringAlignment X軸標題字型排列(不清楚,沒試過)
IsOmitMag 是否顯示指數冪(10次方,沒試過,似乎與IsUseTenPower有關係)
IsPreventLabelOverlap 座標值顯示是否允許重疊,如果False的話,控制項會根據座標值長度自動消除部分座標值的顯示狀態
IsShowTitle X軸標題是否顯示
IsTicsBetweenLabels 兩個座標值之間是否自動顯示分隔標誌
IsUseTenPower 是否使用10次冪指數
IsVisible 是否顯示X軸
IsZeroLine 當資料為0時候是否顯示(在餅狀圖顯示的時候有用)
MajorGrid 大跨度的X軸表格虛線線顯示資訊
DashOff 虛線中孔間距
DashOn 虛線單位長度
MajorTic 大跨度的X軸刻度資訊
IsInside 在Chart內部是否顯示
IsOutSide 在Chart外部是否顯示
IsOpposite 在對面的軸上是否顯示
MinorGrid 小跨度的X軸表格虛線顯示資訊
MinorTic 小跨度的x軸刻度資訊
MinSpace 刻度和軸之間的距離(沒試過)
Scale 刻度值的一些設定
IsReverse X軸的刻度值從高到低還是從低到高
MajorStep 大刻度步長
MajorStepAuto 是否自動化佈建大刻度步長
MajorUnit 大刻度步長單位
Max 刻度最大值
MaxAuto 根據輸入資料自動化佈建刻度最大值
Min 刻度最小值
MinAuto 根據輸入資料自動化佈建刻度最小值
MinGrace 不清楚,沒試過
MinorStep 小刻度步長
MinorStepAuto 是否自動化佈建小刻度步長
MinorUnit 小刻度單位
Type 資料顯示方式
Liner直接現實(自動)
Date按日期方式顯示
Log 按指數冪方式顯示
Ordinal順序顯示
Y2Axis 第二個Y軸座標資訊顯示(具體設定看X軸)
Yaxis 第一個Y軸座標資訊顯示(具體設定看X軸)
GraphPane
BarBase 在產生柱狀圖的時候設定柱狀是基於X軸還是其他軸
BarType 柱狀的類型疊加或其他。
IsFontsScaled 圖比例變化時候圖表上的文字是否跟著自動縮放
IsIgnoreInitial 是否忽略初始值
IsIgnoreMissing 是否忽略預設值
IsPenWidthScaled 圖比例變化時候圖表上的畫筆的粗細是否跟著自動縮放
IsShowTitle 圖表標題是否顯示
PaneFill Pane的一些填充資訊
MasterPane
BaseDimension 縮放比例基數(可以試試效果)
資料 未測試過。不知道如何和資料庫綁定
外觀
IsImageMap 不清楚幹嗎用的
行為
AxisChaneged 是否允許自動繪圖(沒試過,一般都true,動態繪圖)
CacheDuration Cache儲存時間0
OutputFormat 輸出格式
RenderedImagePath 輸出路徑
RenderMode 輸出模式,不太清楚一般都是ImageTag,另一個輸出的是亂碼不是圖片
對於圖表而言,一般是三種表現形式:柱狀圖、餅狀圖和點線圖。
ChartBorder
圖表區域的邊框設定
ChartFill
圖表區域的背景填充
Legend
圖表的注釋標籤顯示設定項目,一組資料對應一種顏色的注釋
IsHStack
當有多個顯示項目的時候設定 Y 軸資料是疊加的還是分開的
Xaxis
圖表區域的 X 軸相關資訊設定
AxisColor
座標軸顏色
Cross
座標的原點,可以設定座標的位移程度
CrossAuto
原點自動化佈建:True 的話 Cross 的設定就無效了。
FontSpec
X 軸標題字型相關資訊
Angle
X 軸標題字型顯示時候的角度,0為水平 90為垂直
Fill
X 軸標題字型填充資訊
ColorOpacity
透明度
IsScaled
設定 X 軸標題字型顯示大小是否根據圖的比例放大縮小
RangeMax
填充時候的最大傾斜度(有過渡色,沒試過)
RangeMin
填充時候的最小傾斜度(有過渡色,沒試過)
StringAlignment
X 軸標題字型排列(不清楚,沒試過)
IsOmitMag
是否顯示指數冪(10次方,沒試過,似乎與 IsUseTenPower 有關係)
IsPreventLabelOverlap
座標值顯示是否允許重疊,如果False的話,控制項會根據座標值長度自動消除部分座標值的顯示狀態
IsShowTitle
X 軸標題是否顯示
IsTicsBetweenLabels
兩個座標值之間是否自動顯示分隔標誌
IsUseTenPower
是否使用10次冪指數
IsZeroLine
當資料為0時候是否顯示(在餅狀圖顯示的時候有用)
IsVisible
是否顯示 X 軸
MajorGrid
大跨度的 X 軸表格虛線線顯示資訊
DashOff
虛線中孔間距
DashOn
虛線單位長度
MajorTic
大跨度的 X 軸刻度資訊
IsInside
在 Chart 內部是否顯示
IsOutSide
在 Chart 外部是否顯示
IsOpposite
在對面的軸上是否顯示
MinorGrid
小跨度的 X 軸表格虛線顯示資訊
MinorTic
小跨度的 x 軸刻度資訊
MinSpace
刻度和軸之間的距離(沒試過)
Scale
刻度值的一些設定
IsReverse
X 軸的刻度值從高到低還是從低到高
MajorStep
大刻度步長
MajorStepAuto
是否自動化佈建大刻度步長
MajorUnit
大刻度步長單位
Max
刻度最大值
MaxAuto
根據輸入資料自動化佈建刻度最大值
Min
刻度最小值
MinAuto
根據輸入資料自動化佈建刻度最小值
MinGrace
不清楚,沒試過
MinorStep
小刻度步長
MinorStepAuto
是否自動化佈建小刻度步長
MinorUnit
小刻度單位
Type
資料顯示方式
Liner
直接現實(自動)
Date
按日期方式顯示
Log
按指數冪方式顯示
Ordinal
順序顯示
Y2Axis
第二個 Y 軸座標資訊顯示(具體設定看 X 軸)
Yaxis
第一個 Y 軸座標資訊顯示(具體設定看 X 軸)
BarBase
在產生柱狀圖的時候設定柱狀是基於 X 軸還是其他軸
BarType
柱狀的類型疊加或其他。
IsFontsScaled
圖比例變化時候圖表上的文字是否跟著自動縮放
IsIgnoreInitial
是否忽略初始值
IsIgnoreMissing
是否忽略預設值
IsPenWidthScaled
圖比例變化時候圖表上的畫筆的粗細是否跟著自動縮放
IsShowTitle
圖表標題是否顯示
PaneFill
Pane 的一些填充資訊
BaseDimension
縮放比例基數(可以試試效果)
IsImageMap
不清楚幹嗎用的
AxisChaneged
是否允許自動繪圖(沒試過,一般都 true,動態繪圖)
CacheDuration
Cache 儲存時間0
OutputFormat
輸出格式
RenderedImagePath
輸出路徑
RenderMode
輸出模式,不太清楚一般都是 ImageTag,另一個輸出的是亂碼不是圖片。對於圖表而言,一般是三種表現形式:柱狀圖、餅狀圖和點線圖。