Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在禁用自动计算的情况下设置ValueAxis的边距?_Java_Jfreechart - Fatal编程技术网

Java 如何在禁用自动计算的情况下设置ValueAxis的边距?

Java 如何在禁用自动计算的情况下设置ValueAxis的边距?,java,jfreechart,Java,Jfreechart,我使用JFreeChart在ApachePDFBox中以PDF格式显示图表 我的问题是:我有一个散点图(附图片),它有固定的下限和上限,所以自动计算不是一个选项。图表显示一个带有结果的蓝点。但是,如果dot的值为0或2(边值),则该点将被切掉,因此在这种情况下需要设置边距。我试过使用xAxis.setUpperMargin,但没有成功 这是代码的一部分: NumberAxis xAxis = (NumberAxis) xyPlot.getDomainAxis(); double tickSize

我使用JFreeChart在ApachePDFBox中以PDF格式显示图表

我的问题是:我有一个散点图(附图片),它有固定的下限和上限,所以自动计算不是一个选项。图表显示一个带有结果的蓝点。但是,如果dot的值为0或2(边值),则该点将被切掉,因此在这种情况下需要设置边距。我试过使用
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上进行了所有组合,但都失败了,就这么简单。这很有帮助,如果你能把它作为答案贴出来,我会接受的。