原創|其它|編輯:郝浩|2012-10-25 13:45:20.000|閱讀 751 次
概述:當你開發一個圖表應用程序時,會經常遇到一個圖表有多個Y軸的需求。最至關重要的是一個好的圖表產品就應該支持靈活的Y軸坐標定位和布局,Nevron Chart for .NET就很好的解決了了多個Y軸的需求。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
當你開發一個圖表應用程序時,會經常遇到一個圖表有多個Y軸的需求。最至關重要的是一個好的圖表產品就應該支持靈活的Y軸坐標定位和布局,Nevron Chart for .NET就很好的解決了了多個Y軸的需求。
最常見的需求就是兩個 Y 坐標軸和兩個系列縮放,當你需要比較兩個系列數據在級或者是測量上的不同時,這是最常見的。但是想要以可視方式比較,以便使最終用戶能夠分析趨勢或兩者之間的關系。比如下面的例子,圖片顯示 的假象的120 天水測量:
由于水的儲備規模在水的借記卡中不同,很明顯用戶不能正確的分析者兩個。
一個解決辦法是利用一個次坐標軸的借記卡數據,同時顯示兩個趨勢:
在上面的圖片中,借記卡測量在次主坐標軸上顯示,而且基數為90。下面的代碼主要是用于縮放輔助的 Y 軸上的借記卡區域:
[C#]
NAxis secondaryY = (NAxis)chart.Axis(StandardAxis.SecondaryY); secondaryY.Visible = true; areaDebit.DisplayOnAxis(StandardAxis.PrimaryY, false); areaDebit.DisplayOnAxis(StandardAxis.SecondaryY, true);
[VB.NET]
Dim secondaryY As NAxis = chart.Axis(StandardAxis.SecondaryY) secondaryY.Visible = True areaDebit.DisplayOnAxis(StandardAxis.PrimaryY, False) areaDebit.DisplayOnAxis(StandardAxis.SecondaryY, True)
可以注意到當二級Y軸是可見時,圖表的區域縮小了。
然而在某種情況下,可能希望讓兩個軸在圖表的同一邊,如下圖所示:
為了改變第二Y軸的位置,就必須修改它的anchor:
代碼如下:
[C#]
NAxis secondaryY = (NAxis)chart.Axis(StandardAxis.SecondaryY); secondaryY.Visible = true; secondaryY.Anchor = new NDockAxisAnchor(AxisDockZone.FrontLeft);
[VB.NET]
Dim secondaryY As NAxis = chart.Axis(StandardAxis.SecondaryY) secondaryY.Visible = True secondaryY.Anchor = New NDockAxisAnchor(AxisDockZone.FrontLeft)
現在第二Y軸是停靠在主Y軸左邊(顯示范圍[0,1200])。
上面的圖表需要 另一個touch,當你停靠幾個軸到一個軸區域時(比如上圖中的左邊的區域),你可能想要引進一些顏色代碼來鏈接到這些軸上面以便于區分。
這是非常必要的,因為用戶不能直觀地理解區域是從90到115或是從0到1200。下面的圖片顯示了這些軸是如何與顏色代碼來表示內容和區域的。
可以注意到為了節省空間,禁用了軸上主要的一些刻度,實現的代碼如下:
[C#]
NAxis primaryY = (NAxis)chart.Axis(StandardAxis.PrimaryY); NStandardScaleConfigurator primaryScaleY = primaryY.ScaleConfigurator as NStandardScaleConfigurator; primaryScaleY.RulerStyle.BorderStyle.Color = Color.DarkOrange; primaryScaleY.OuterMajorTickStyle.LineStyle.Color = Color.DarkOrange; primaryScaleY.InnerMajorTickStyle.Length = new NLength(0); primaryScaleY.LabelStyle.TextStyle.FillStyle = new NColorFillStyle(Color.DarkOrange); NAxis secondaryY = (NAxis)chart.Axis(StandardAxis.SecondaryY); NLinearScaleConfigurator secondaryScaleY = secondaryY.ScaleConfigurator as NLinearScaleConfigurator; secondaryScaleY.RulerStyle.BorderStyle.Color = Color.Green; secondaryScaleY.OuterMajorTickStyle.LineStyle.Color = Color.Green; secondaryScaleY.InnerMajorTickStyle.Length = new NLength(0); secondaryScaleY.UseOrigin = true; secondaryScaleY.Origin = 100; secondaryScaleY.LabelStyle.TextStyle.FillStyle = new NColorFillStyle(Color.Green);
[VB.NET]
Dim primaryY As NAxis = chart.Axis(StandardAxis.PrimaryY) Dim primaryScaleY As NStandardScaleConfigurator = CType(primaryY.ScaleConfigurator, NStandardScaleConfigurator) primaryScaleY.RulerStyle.BorderStyle.Color = Color.DarkOrange primaryScaleY.OuterMajorTickStyle.LineStyle.Color = Color.DarkOrange primaryScaleY.InnerMajorTickStyle.Length = New NLength(0) primaryScaleY.LabelStyle.TextStyle.FillStyle = New NColorFillStyle(Color.DarkOrange) Dim secondaryY As NAxis = chart.Axis(StandardAxis.SecondaryY) Dim secondaryScaleY As NLinearScaleConfigurator = CType(secondaryY.ScaleConfigurator, NLinearScaleConfigurator) secondaryScaleY.RulerStyle.BorderStyle.Color = Color.Green secondaryScaleY.OuterMajorTickStyle.LineStyle.Color = Color.Green secondaryScaleY.InnerMajorTickStyle.Length = New NLength(0) secondaryScaleY.UseOrigin = True secondaryScaleY.Origin = 100 secondaryScaleY.LabelStyle.TextStyle.FillStyle = New NColorFillStyle(Color.Green)
Nevron Chart可以擁有無限的多個自定義的垂直和水平軸,你可以指定軸,在上面按照原比例縮小,當使用軸對接你還可以指定是否創建一個單獨的水平軸在dock區或最后創建一個,這允許你在zone level上有兩個或多個軸,共享一個百分比的圖表墻。
效果如下:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網