繁体   English   中英

如何删除图表周围的白色边框?

[英]How to remove white border around a chart?

这是稍微修改过的org.jfree.chart.demo.BarChartDemo1代码:

public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {

                CategoryDataset dataset = createDataset();

                JFreeChart chart = createChart(dataset);

                //chart.setBorderVisible(false); // no effect
                //chart.setPadding(new RectangleInsets(0, 0, 0, 0)); // no effect

                ChartPanel chartPanel = new ChartPanel(chart);
                chartPanel.setFillZoomRectangle(true);
                chartPanel.setMouseWheelEnabled(true);
                //chartPanel.setPreferredSize(new Dimension(500, 270));
                chartPanel.setBounds(100,100,640,480);

                JFrame frame = new JFrame();
                frame.setLayout(null);
                //frame.setContentPane(chartPanel);
                frame.add(chartPanel);
                frame.pack();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);

            }
        });
    }

它画了

在此输入图像描述

是否可以删除图表周围的白色边框? 有些尝试是在代码中,没有任何效果。

看到你已经消除了域和范围轴,还有一个你没有考虑的填充源。 你错过了这个:

chart.getPlot().setInsets( new RectangleInsets(){
        public void trim( Rectangle2D area ) {};
    });

您在发布的示例中看到的空白区域是由于Plot insets,其中您发布的代码正在操作JFreeChart 解决方案代码中匿名子类的原因是在原始实现中消除1像素“晕”。

编辑:

我摆弄了一些,并注意到除了插入修复之外你可能需要或不需要这个。 我没有在这方面深入探讨,但是传入一个分类别的CategoryPlot似乎至少可以解决这个特殊情况。

private class WrappedCategoryPlot extends CategoryPlot
{
  @Override
  protected AxisSpace calculateAxisSpace( Graphics2D g2, Rectangle2D plotArea )
  {
     return new AxisSpace();
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM