2012-11-06 2 views
0

나는 음수에서 양수로 라인이 상승하는 간단한 차트가 있습니다. 가로 축과 교차합니다. 가독성을 위해 AxisY 교차점을 0으로 설정했습니다. x 축이 차트 영역의 중간에 위의 동안MS Chart : 축 레이블을 확장자에 배치하는 방법

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

그러나 그렇게 내 X 축 레이블은 차트에서, 아래에 유지됩니다.

AxisX 라벨을 축 아래 또는 옆에 어떻게 설정할 수 있습니까?

Axis label should follow the axis

답변

1

Annotations을 사용하여 성공했습니다. 시각적 일관성을 유지하기 위해이 두 축에 대해 만들었습니다. 다음은 세로 축에 대한 코드입니다. AnchorY가 있지만 인덱스와 차트의 이름으로 작동하지 않았다 설정 이상하게

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 

. 이는 : 또한

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

, 내가 프로그래밍 Annotations를 설정할 때이 만했다. Visual Studio 2010의 디자이너에서이 값을 설정하면 결과를 시각화 할 수 있었지만 런타임에는 아무 것도 표시하지 않았습니다.

마지막으로, 이제 어떻게 생겼는지 보여줍니다. Problem solved

라벨이 더 편의를 위해 차트 안에있는 것은 그들을 배치 또한 좋은 해결책이었다 것

1

나는 당신이 MS 차트 클래스에서 파생하지 않는 한 당신이 원하는 일을 할 수 있다고 생각하고 축 제목을 그리는 방법을 대체하지 않습니다.
대신 X 축을 맨 아래에두고 0 값이 Y 값 중 하나인지 여부를 확인한 다음 y = 0에 맞춤 수평선을 그립니다.

+0

감사합니다, (그렇지 않으면 나는 축에서 숫자의 크기에 귀찮게한다). 방금 게시 한 솔루션을 선호합니다. 더욱 복잡하고 축의 "안쪽"에 레이블이있는 단점이 있습니다. – Nicolas

관련 문제