使用org.jfree:jfreechart的XYSplineRenderer时图表超出绘图边界
JFreeChart XYSplineRenderer绘图超出边界问题解决

使用org.jfree:jfreechart中的XYSplineRenderer绘图时,出现图表超出绘图边界的问题。尝试了以下代码,但图表仍会“错位”并超出绘图区域:
XYSplineRenderer splineRenderer = new XYSplineRenderer(15); splineRenderer.setDefaultShapesVisible(false); plot.setRenderer(splineRenderer);
解决方法:
- 调整绘图区域内边距:通过
plot.setInsets()给绘图区域设置合适的边距,为曲线留出额外空间,示例代码:plot.setInsets(new RectangleInsets(10.0, 10.0, 10.0, 10.0)); - 降低曲线张力:
XYSplineRenderer构造参数的张力值过大(比如15)会导致曲线过度弯曲,超出绘图范围,尝试减小数值,比如设为3:XYSplineRenderer splineRenderer = new XYSplineRenderer(3); - 开启坐标轴自动适配:确保坐标轴范围能自动匹配曲线的极值,代码如下:
plot.getDomainAxis().setAutoRange(true); plot.getRangeAxis().setAutoRange(true); - 手动设置坐标轴范围:如果自动适配效果不佳,可根据数据手动指定坐标轴的最大最小值:
plot.getDomainAxis().setRange(minX, maxX); // minX、maxX为数据中的最小/最大X值 plot.getRangeAxis().setRange(minY, maxY); // minY、maxY为数据中的最小/最大Y值
内容的提问来源于stack exchange,提问作者Anonymous
相关产品推荐
相关产品推荐

