我发现,当图表值非常小时,Y轴上的AutoRange不能正常工作。查看示例:
运作良好(正常值):
效果不佳(较小值):
实际上我可以点击几次以放大它,这是最大程度:
如您所见
在制作模型时,我会像这样构造Y轴:
this.yAxis = builder.newNumericAxis()
.withAxisId(PRICES)
.withAutoRangeMode(AutoRange.Once)
// .withDrawMinorGridLines(true)
// .withDrawMajorGridLines(true)
// .withMinorsPerMajor(4)
// .withMaxAutoTicks(8)
// .withGrowBy(new DoubleRange(0.000001d, 0.000001d))
.withLabelProvider(new NumericLabelProviderPrice(currency))
.build();
使用不同的withGrowBy
参数进行实验只能产生有限的结果。
无论图表值是大(> 1000)还是小(<0.01),如何使Y自动量程自动工作?
答案 0 :(得分:2)
您可以尝试将MinimalZoomConstrain设置为0吗?
yAxis.setMinimalZoomConstrain(0d);
这应禁用缩放深度的任何约束。
默认情况下,NumericAxisBuilder将其设置为0.01,以防止图表进行非常深的缩放;如果VisibleRange不满足MinimalZoomConstrain,则在使用NumericAxis时,轴会将其重置为默认值,等于(0,10)。