2012-11-06 95 views
0

我有一個簡單的圖表,其中一條線從負面到正面:它橫過水平軸。爲了便於閱讀,我確實將AxisY交叉點設置爲零。MS Chart:如何將軸標籤放置在它的擴展中

ChartAmortisation.ChartAreas("Amortisation").AxisY.Crossing = 0 

但這樣做,我的x軸的標籤保持低於在圖表下方,而x軸以上圖表區的中間。

如何在軸上或旁邊設置AxisX標籤?

Axis label should follow the axis

回答

1

我成功使用Annotations。爲了保持視覺連貫性,我爲這兩個軸做了這個。這是我的垂直軸代碼。

Dim caLabelAxisY As New TextAnnotation 
With caLabelAxisY 
     .AnchorX = 0 
     .AxisX = ChartAmortisation.ChartAreas(0).AxisX 
     .AnchorY = ChartAmortisation.ChartAreas(0).AxisY.Maximum 
     .AxisY = ChartAmortisation.ChartAreas(0).AxisY 

     .Name = "Label AxisY" 
     .Text = "Investition/Überschuss" 
     .Font = New Font("Microsoft Sans Serif", 9, FontStyle.Bold) 

     .AnchorAlignment = ContentAlignment.TopLeft 
End With 

奇怪的是,設置AnchorY沒有與圖表的名稱工作,但只有它的索引。這意味着:

'What works: 
caLabelAxisY.AnchorY = ChartAmortisation.ChartAreas(0).AxisY.Maximum 
'What doesnot work: 
caLabelAxisY.AnchorY = ChartAmortisation.ChartAreas("Amortisation").AxisY.Maximum 

此外,只有當我以編程方式設置Annotations時才起作用。在Visual Studio 2010的Designer中設置這些幫助我可視化結果將會是什麼,但是在運行時不顯示任何東西。

最後,這裏是它現在的樣子。 Problem solved

的標籤位於圖表您更方便的內將它們

1

我不認爲這是可以做到你想要什麼,除非你從MS圖表類派生,並重寫它繪製軸標題的方式。
相反,您可以將X軸保留在底部,然後檢測0值(零)是否在Y值之間,並且如果是這種情況 - 在y = 0處繪製自定義水平線。

+0

感謝,這也將是一個很好的解決方案(否則我應該在軸上的數字的大小麻煩)。我更喜歡我剛剛發佈的解決方案,甚至更復雜,並且缺點是在軸的「內側」上有標籤。 – Nicolas

相關問題