首页 > 解决方案 > 如何在禁用自动计算的情况下在 ValueAxis 上设置边距?

问题描述

我正在使用 JFreeChart 使用 Apache PdfBox 以 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);

图表图像

标签: javajfreechart

解决方案


正如您所观察到的,“仅在自动计算轴范围时才添加边距——如果您手动设置轴范围,边距将被忽略。” 或者,您可以在手动设置范围时添加合适的边距。从此示例开始,以下更改为adjustAxis()在每个轴的每一端添加 10% 的边距,从而产生显示的结果。

axis.setRange(-1.1, 1.1);

带边距的散点图


推荐阅读