这是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
插入项导致的,您的已发布代码正在操纵JFreeChart
。解决方案代码中使用匿名子类的原因是在原始实现中消除了1像素的“光晕”。编辑:
我摆弄了一些东西,发现除了插入修复程序之外,您可能也可能不需要此功能。我还没有对此深入探讨,但是传递一个子类
CategoryPlot
似乎至少可以解决这种特殊情况。private class WrappedCategoryPlot extends CategoryPlot
{
@Override
protected AxisSpace calculateAxisSpace( Graphics2D g2, Rectangle2D plotArea )
{
return new AxisSpace();
}
}
关于java - 如何删除图表周围的白色边框?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15098227/