Java 如何在GRAL中更改插图颜色?

Java 如何在GRAL中更改插图颜色?,java,graph,charts,Java,Graph,Charts,我正在尝试创建GRAL图并将其导出为JPG 不知道为什么,但“插入”区域(边界外)的颜色似乎默认为黑色。这尤其令人困惑,因为文档似乎表明插图默认为白色 如何更改插图的颜色 下面是我如何导出jpg的 private void getJpg(BarPlot plot) { BufferedImage bImage = new BufferedImage(800, 600, BufferedImage.TYPE_INT_ARGB); Graphics2D g2d = (Graphics

我正在尝试创建GRAL图并将其导出为JPG

不知道为什么,但“插入”区域(边界外)的颜色似乎默认为黑色。这尤其令人困惑,因为文档似乎表明插图默认为白色

如何更改插图的颜色

下面是我如何导出jpg的

private void getJpg(BarPlot plot) {
    BufferedImage bImage = new BufferedImage(800, 600, BufferedImage.TYPE_INT_ARGB);
    Graphics2D g2d = (Graphics2D) bImage.getGraphics();
    DrawingContext context = new DrawingContext(g2d);
    plot.draw(context);
    DrawableWriter wr = DrawableWriterFactory.getInstance().get("image/jpeg");
    try {
        wr.write(plot, new FileOutputStream("/path/out.jpg"), 800, 600);
    } catch (IOException err) {
        System.out.println(err);
    }
}
这是我当前的结果(现在在黑背景上使用白色文本,但希望在白背景上使用黑色文本)

我想出来了!(在同事的帮助下)

插入区域默认为透明黑色(RGBA(0,0,0,0))。因此,当图形导出为JPEG(不支持透明度)时,它会删除alpha值并将其全部渲染为黑色。通过导出为png,我能够保持透明度,并且当嵌入到白色背景的文档中时,图形看起来很好

private static void getPng(XYPlot plot, String fileName) {
    BufferedImage bImage = new BufferedImage(800, 600, BufferedImage.TYPE_INT_RGB);
    Graphics2D g2d = (Graphics2D) bImage.getGraphics();
    DrawingContext context = new DrawingContext(g2d);
    plot.draw(context);
    DrawableWriter wr = DrawableWriterFactory.getInstance().get("image/png");
    try {
        wr.write(plot, new FileOutputStream(fileName + ".png"), 800, 600);
    } catch (IOException err) {
        System.out.println(err);
    }
}
我知道了!(在同事的帮助下)

插入区域默认为透明黑色(RGBA(0,0,0,0))。因此,当图形导出为JPEG(不支持透明度)时,它会删除alpha值并将其全部渲染为黑色。通过导出为png,我能够保持透明度,并且当嵌入到白色背景的文档中时,图形看起来很好

private static void getPng(XYPlot plot, String fileName) {
    BufferedImage bImage = new BufferedImage(800, 600, BufferedImage.TYPE_INT_RGB);
    Graphics2D g2d = (Graphics2D) bImage.getGraphics();
    DrawingContext context = new DrawingContext(g2d);
    plot.draw(context);
    DrawableWriter wr = DrawableWriterFactory.getInstance().get("image/png");
    try {
        wr.write(plot, new FileOutputStream(fileName + ".png"), 800, 600);
    } catch (IOException err) {
        System.out.println(err);
    }
}