更高质量的JFreeChart图表

时间:2011-10-03 17:39:43

标签: java charts jfreechart

我想将我用JFreeChart创建的图表的PNG嵌入到PDF文档中。这里的问题是,图表的质量非常差。我的目标是拥有300 DPI的PNG。我用Google搜索了将近一个小时,但我找不到解决方案。

有没有办法将生成的图表从JFreeCharts导出为具有300 DPI的PNG(或JPEG)?

3 个答案:

答案 0 :(得分:2)

另请查看org.jfree.chart.ChartUtilities#writeScaledChartAsPNG

如果您提供的比例因子为2,则您的图表将以两倍的分辨率呈现。

答案 1 :(得分:1)

从版本1.4开始,JFreeChart使用ImageIO提供的png编码器。作为替代方案,您可以查看com.keypoint.PngEncoder,其中包括setDpi()。另请参阅org.jfree.chart.encoders.SunPNGEncoderAdapterorg.jfree.chart.encoders.KeypointPNGEncoderAdapter

答案 2 :(得分:0)

您可以使用XChart,因为在特定DPI的高分辨率中导出Charts是自version 2.2.0以来的新功能。代码看起来像这样:

double[] xData = new double[] { 0.0, 1.0, 2.0 };
double[] yData = new double[] { 2.0, 1.0, 0.0 };

// Create Chart
Chart chart = QuickChart.getChart("Sample Chart", "X", "Y", "y(x)", xData, yData);

// Show it
new SwingWrapper(chart).displayChart();

// Save it
BitmapEncoder.savePNG(chart, "./Sample_Chart.png"); // default 72 DPI
BitmapEncoder.savePNGWithDPI(chart, "./Sample_Chart_300_DPI.png", 300);

免责声明:我是XChart的首席开发人员。我最近遇到了和你一样的问题。我需要300 DPI的图表才能获得科学出版物。欢迎提供反馈!