JFreeChart边距

5
我正在使用JasperReports为我的Web应用程序创建线性图表。
我已经成功地将数据集传递给编译的报表(在iReport中创建),并且可以正确地看到数据。
然而,我想对边距进行一些自定义设置:
1. 在没有边距的情况下,线性图表上显示的数值被修剪了。
2. X轴标签距离Y轴0值有一些空白间隔。我想要移除这个边距,并从X和Y的交点开始绘制X轴。
请参见图片:
https://istack.dev59.com/okod8.webp 我正在使用自定义类,在我的Web应用程序中定义。我能够更改标签的字体大小和旋转,但不知道如何调整边距。
public class LineChartCustomizer implements JRChartCustomizer {
    @Override
    public void customize(JFreeChart jFreeChart, JRChart jrChart) {
        CategoryPlot plot = jFreeChart.getCategoryPlot();

        DecimalFormat dfKey = new DecimalFormat("###,###");

        StandardCategoryItemLabelGenerator labelGenerator = new StandardCategoryItemLabelGenerator("{2}", dfKey);  

        LineAndShapeRenderer renderer = new LineAndShapeRenderer();

        renderer.setBaseItemLabelsVisible(true);

        renderer.setBaseItemLabelGenerator(labelGenerator);

        renderer.setBaseItemLabelFont(new java.awt.Font("SansSerif", java.awt.Font.PLAIN, 4));        

        renderer.setSeriesShape(0, ShapeUtilities.createDiamond(1F));

        plot.setRenderer(renderer);
    }
}
1个回答

4
我认为您正在寻找ValueAxis#setUpperMargin(double)CategoryAxis#setLowerMargin(double),您可以通过plot.getDomainAxis()plot.getRangeAxis()获得CategoryAxisValueAxis。请注意,边距是轴长度的百分比,而不是像素值。
* 我不熟悉JasperReports,但我觉得手头上有一个 CategoryPlot 而不是一个 XYPlot 有点奇怪。我预期您图片中的图表将使用xy时间序列。我只测试过XYPlot,所以我不能确定它在CategoryPlot上的行为如何。

运行得非常好。非常感谢。 - Chirag Jhaveri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接