2013-02-22 294 views
2

使用XML文件中的數據(數據可能不總是相同,請牢記)繪製Profit/Loss圖形,並使用MSChart庫,我目前獲得兩個條形圖,一個用於正值,另一個用於負值。結合這兩個系列在單個ChartArea,我目前得到看起來像這樣的圖表:C#MSChart:將軸線繪製爲0,即使值爲負值

http://i.imgur.com/K3BHXnS.png

然而,這仍然不是我想要的。我希望Y軸的'中間'行(圖5.4中的5.4)爲'0'。但是,如果沒有負值,我檢查過的每個方法都只能這樣做,這就是爲什麼它不適用於我的情況。使用「Crossing」屬性也是不正確的,因爲如果您願意,它會在我希望我的標籤使用「0」作爲「基礎」的情況下繪製額外的一行。換句話說,我希望我的圖表看起來像這個:

http://i.imgur.com/k2WVGck.png

我就能照顧不規則值的標籤,一旦我知道如何表達0線,這是爲什麼這對我很重要。我非常感謝你能給我提供的任何幫助,因爲我自己的研究迄今一直沒有成果。

+0

我希望我的圖表看起來像這樣的示例的源代碼:http://www.datameer.com/documentation/display/DAS21/Negative+Stacked+Bar+Chart – 2013-02-22 13:13:49

+0

mschart stackedcolumn的默認行爲是做你想要的。所以問題就變成了,你是如何改變它以獲得非零的Y起源的?發佈一些代碼可以幫助找到問題的根源。 – zeFrenchy 2013-02-26 15:15:50

回答

3

確保您讓控件決定Y軸的最佳MinMax。 所以做做到這一點:

chart1.ChartAreas[0].AxisY.Maximum = mymax; 
chart1.ChartAreas[0].AxisY.Minimum = mymin; 

enter image description here 而不是確保您設置auto模式:

chart1.ChartAreas[0].AxisY.Maximum = double.NaN; 
chart1.ChartAreas[0].AxisY.Minimum = double.NaN; 

enter image description here

+0

該解決方案完美運行。問題在於我爲其他需要顯示的圖形使用了不同的解決方案,但顯然將這種解決方案應用於此類圖形並不是一種好的方法。這已得到糾正,軸現在按預期工作。非常感謝您的幫助,非常感謝。 – 2013-02-26 18:47:43

0

另一種方法是,以設置的時間間隔爲您ÿ軸。

chart1.ChartAreas [「ChartArea1」]。AxisY.Interval = 25;