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. 我为两个轴做了这个,以保持视觉连贯性。这是我的垂直轴代码。

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 回答