java - 如何在禁用自动计算的情况下在 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);
解决方案
正如您所观察到的,“仅在自动计算轴范围时才添加边距——如果您手动设置轴范围,边距将被忽略。” 或者,您可以在手动设置范围时添加合适的边距。从此示例开始,以下更改为adjustAxis()
在每个轴的每一端添加 10% 的边距,从而产生显示的结果。
axis.setRange(-1.1, 1.1);
推荐阅读
- firebase - 为什么 dataSnapshot 在 ViewModel 中反序列化,而不是在扩展 LiveData 的类中?
- c - C:处理二维数组的列
- powershell - 在 PowerShell 中使用“使用”语句的任何动态方式?
- .net - 函数参数 VS 私有引用
- java - 设置拦截器仅关闭端点
- javascript - 下载文件时设置csv编码
- opencv - 如何读取检测到的对象矩形中的字符?
- mysql - 合并 2 列并在列内求和
- rest - Salesforce REST API 如何避免在查询参数中泄露敏感数据
- tensorflow - “时代”在训练生成对抗网络中意味着什么