我正在使用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的地方显示一条线。无论它被强制进入,还是设置为其中一个间隔点都无关紧要,只要它在那里就可以了。
答案 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