2016-11-16 95 views
0

我在C#.NET應用程序(Visual Studio 2013)中使用圖表控件。如何強制X軸網格線和標籤的倍數爲100?我已將每個「間隔」屬性設置爲100,但在運行時,它始終將網格線和標籤置於198,398,598等。這是針對具有2048個點的數據集。如何強制圖表X軸標籤間隔爲100? (C#,.NET)

我寧願在設計器中做它,但如果必須的話,我會在代碼中做到這一點。

我是新的C#/。NET,所以請讓我知道的信息關鍵部分,我遺漏了什麼......

+0

還設置了最低一格,最有可能的爲0,但這將取決於您的實際x值..'如果它沒有幫助,向我們展示更多您的數據和結果... – TaW

回答

0

首先設置chart.ChartArea[0].AxisX.Minimumchart.ChartArea[0].AxisX.Maximum。 然後chart.ChartArea[0].AxisX.Interval = 100;並且還調整IntervalOffset

但是,如果最小值> 0:,網格將偏離最小值。這意味着正確的偏移量將axis.IntervalOffset = axis.Interval - axis.Minimum;

但是,如果最小值是< 0:

axis.IntervalOffset = axis.Interval - axis.Minimum

將是評價的東西像(以最小= -4爲例)axis.IntervalOffset = 100 - (-4)= 104這是有問題的,因爲如果IntervalOffset>Interval間隔將從IntervalOffset開始並跳過任何網格線MinimumIntervalOffset。 (以上例中網格線爲0將被跳過)

換句話說,正確的偏移量是:IntervalOffset = (axis.Interval - axis.Minimum) % axis.Interval

這給正確的偏移

axis.IntervalOffset = (-axis.Minimum) % axis.Interval; 

例如:

var axis = chart.ChartAreas[0].AxisX; 
var points = chart.Series[0].Points; 

axis.Minimum = points.Min(p => p.XValue); 
axis.Maximum = points.Max(p => p.XValue); 

axis.Interval = 100; 
axis.IntervalOffset = (-axis.Minimum) % axis.Interval; 

會給你相交X = 0