VB.Net - 始终显示Y轴= 0

时间:2013-12-30 19:58:33

标签: vb.net charts mschart

我正在使用MS Charts和VB创建堆积条形图。偶尔,我们会遇到一些问题,即我们的某些堆栈显示为负数。

我们目前正在使用相当粗略的公式来设置我们的Y轴最大值...

    If dblMaxTotal >= 15 Then
        dblMaxTotal = System.Math.Round(((dblMaxTotal * 12) / 10) / 10, 0) * 10
    Else
        dblMaxTotal = 15
    End If

    chAutoTotalBindsBreak.ChartAreas("ChartArea1").AxisY.Maximum = dblMaxTotal
    chAutoTotalBindsBreak.ChartAreas("ChartArea1").AxisY2.Maximum = dblMaxTotal

    chAutoTotalBindsBreak.ChartAreas("ChartArea1").AxisY.Interval = dblMaxTotal * 0.2
    chAutoTotalBindsBreak.ChartAreas("ChartArea1").AxisY2.Interval = dblMaxTotal * 0.2

这适用于我们的工作,包括负数。

然而,我需要总是在Y = 0的地方显示一条线。无论它被强制进入,还是设置为其中一个间隔点都无关紧要,只要它在那里就可以了。

1 个答案:

答案 0 :(得分:0)

对于那些好奇的人来说,这就是我们的目标。

If dblMaxTotal >= 15 Then
    dblMaxTotal = System.Math.Round(((dblMaxTotal * 12) / 10) / 10, 0) * 10
ElseIf dblMaxTotal > 0 Then
    dblMaxTotal = 15
Else
    dblMaxTotal = 0
End If

chAutoTotalBindsBreak.ChartAreas("ChartArea1").AxisY.Maximum = dblMaxTotal
chAutoTotalBindsBreak.ChartAreas("ChartArea1").AxisY2.Maximum = dblMaxTotal

If dblMaxTotal = 0 And dblMinAmount < 0 Then
    dblMaxTotal = (dblMinTotal) * -1
End If

Dim MinValue As Double = dblMaxTotal * 0.2
If dblMinAmount < 0 Then
    While MinValue < dblMinTotal * -1
        If MinValue < dblMinAmount * -1 Then
            MinValue = MinValue + (dblMaxTotal * 0.2)
        End If
    End While
    chAutoTotalBindsBreak.ChartAreas("ChartArea1").AxisY.Minimum = MinValue * -1
    chAutoTotalBindsBreak.ChartAreas("ChartArea1").AxisY2.Minimum = MinValue * -1
End If

chAutoTotalBindsBreak.ChartAreas("ChartArea1").AxisY.Interval = dblMaxTotal * 0.2
chAutoTotalBindsBreak.ChartAreas("ChartArea1").AxisY2.Interval = dblMaxTotal * 0.2