我有一个简单的图表,其中一条线从负面到正面:它横过水平轴。为了便于阅读,我确实将AxisY交叉点设置为零。MS Chart:如何将轴标签放置在它的扩展中
ChartAmortisation.ChartAreas("Amortisation").AxisY.Crossing = 0
但这样做,我的x轴的标签保持低于在图表下方,而x轴以上图表区的中间。
如何在轴上或旁边设置AxisX标签?
我有一个简单的图表,其中一条线从负面到正面:它横过水平轴。为了便于阅读,我确实将AxisY交叉点设置为零。MS Chart:如何将轴标签放置在它的扩展中
ChartAmortisation.ChartAreas("Amortisation").AxisY.Crossing = 0
但这样做,我的x轴的标签保持低于在图表下方,而x轴以上图表区的中间。
如何在轴上或旁边设置AxisX标签?
我成功使用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中设置这些帮助我可视化结果将会是什么,但是在运行时不显示任何东西。
最后,这里是它现在的样子。
的标签位于图表您更方便的内将它们
我不认为这是可以做到你想要什么,除非你从MS图表类派生,并重写它绘制轴标题的方式。
相反,您可以将X轴保留在底部,然后检测0值(零)是否在Y值之间,并且如果是这种情况 - 在y = 0处绘制自定义水平线。
感谢,这也将是一个很好的解决方案(否则我应该在轴上的数字的大小麻烦)。我更喜欢我刚刚发布的解决方案,甚至更复杂,并且缺点是在轴的“内侧”上有标签。 – Nicolas