Java 如何在禁用自动计算的情况下设置ValueAxis的边距?
我使用JFreeChart在ApachePDFBox中以PDF格式显示图表 我的问题是:我有一个散点图(附图片),它有固定的下限和上限,所以自动计算不是一个选项。图表显示一个带有结果的蓝点。但是,如果dot的值为0或2(边值),则该点将被切掉,因此在这种情况下需要设置边距。我试过使用Java 如何在禁用自动计算的情况下设置ValueAxis的边距?,java,jfreechart,Java,Jfreechart,我使用JFreeChart在ApachePDFBox中以PDF格式显示图表 我的问题是:我有一个散点图(附图片),它有固定的下限和上限,所以自动计算不是一个选项。图表显示一个带有结果的蓝点。但是,如果dot的值为0或2(边值),则该点将被切掉,因此在这种情况下需要设置边距。我试过使用xAxis.setUpperMargin,但没有成功 这是代码的一部分: NumberAxis xAxis = (NumberAxis) xyPlot.getDomainAxis(); double tickSize
xAxis.setUpperMargin
,但没有成功
这是代码的一部分:
NumberAxis xAxis = (NumberAxis) xyPlot.getDomainAxis();
double tickSize = maxValue > 10 ? 1 : 0.5;
xAxis.setTickUnit(new NumberTickUnit(tickSize));
xAxis.setRange(1, maxValue);
正如您所观察到的,只有在自动计算轴范围时才会添加“如果您手动设置轴范围,则忽略边距”。或者,您可以在手动设置范围时添加适当的边距。从这一点开始,对adjustAxis()
的以下更改会在每个轴的两端增加10%的余量,从而产生所示的结果
axis.setRange(-1.1, 1.1);
为什么不填充范围,例如,
setRange(1,maxValue+margin)
?@trashgood所以,我找了两天的解决方案,在axis上进行了所有组合,但都失败了,就这么简单。这很有帮助,如果你能把它作为答案贴出来,我会接受的。