0

線が負から正に上昇する単純なチャートがあります。それは水平軸と交差しています。読みやすくするために、AxisYの交差をゼロに設定しました。

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

しかしそうすることで、x軸のラベルはチャートの下の下部にとどまり、x軸はチャート領域の中央の上部になります。

AxisXラベルを軸の下、または軸の横に設定するにはどうすればよいですか?

軸ラベルは軸に従う必要があります

4

2 に答える 2

1

MS Chartクラスから派生させて、軸タイトルを描画する方法をオーバーライドしない限り、あなたが望むことはできないと思います。
代わりに、X 軸を下に置いたままにして、0 (ゼロ) 値が Y 値の中にあるかどうかを検出し、そうである場合は、y = 0 にカスタムの水平線を描画します。

于 2012-11-08T18:18:23.007 に答える
1

を使用して成功しAnnotationsました。視覚的な一貫性を維持するために、2 つの軸に対してこれを作成しました。縦軸のコードは次のとおりです。

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 のデザイナーで設定すると、結果がどうなるかを視覚化するのに役立ちましたが、実行時には何も表示されませんでした。

そして最後に、現在の様子です。 問題が解決しました

ラベルは、より便利にチャート内に配置されています (それ以外の場合は、軸上の数値のサイズを気にする必要があります)。

于 2012-11-09T12:35:34.547 に答える