我有一个简单的图表,其中一条线从负面上升到正面:它穿过水平轴。为了便于阅读,我确实将AxisY交叉设置为零。
ChartAmortisation.ChartAreas("Amortisation").AxisY.Crossing = 0
但是这样做,我的x轴标签位于图表下方,而x轴位于图表区域中间的上方。
如何在轴下或旁边设置AxisX标签?
答案 0 :(得分:1)
除非您从MS Chart类派生,否则我认为不可能做你想要的事情,并覆盖它绘制轴标题的方式。
相反,您可以将X轴保留在底部,然后检测0(零)值是否在Y值之间,如果是这种情况,则在y = 0处绘制自定义水平线。
答案 1 :(得分: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中设置这些帮助我可视化结果,但在运行时没有显示任何内容。
最后,这就是现在的样子。
标签位于图表内部以便于放置它们(否则我应该打扰轴上数字的大小)