【发布时间】:2011-01-25 12:13:20
【问题描述】:
在将图表转换为图像时,我必须在图像上显示为图表创建的所有图例。但是图例的数量很多,因为图例是从底部切掉的,图像上只出现了很少的图例.
所以请任何人告诉我如何解决这个问题
【问题讨论】:
-
什么版本的 JFreeChart?你能举个例子吗?
标签: java charts jfreechart jcchart
在将图表转换为图像时,我必须在图像上显示为图表创建的所有图例。但是图例的数量很多,因为图例是从底部切掉的,图像上只出现了很少的图例.
所以请任何人告诉我如何解决这个问题
【问题讨论】:
标签: java charts jfreechart jcchart
您可以像这样将图表转换为图像:
OutputStream out = ...
org.jfree.chart.ChartUtilities.writeChartAsPNG(out, chart, width, height, null, true, 0);
你用的是这个方法吗?
【讨论】:
要为 JCChart 创建图表图像,我使用 JCChart 的 snapshot(JCChart,int) 方法,它将返回图表图像。因此,要显示所有图例,我们必须按如下方式覆盖快照方法
公共图像快照(JCChart 图表,int num_legends){
图片 image = chart.createImage(chart.getSize().width, chart.getSize().height+
(chart.getLegend().getSymbolSize()+4)*num_legends);
如果(图像!= null)
{
图形 g = image.getGraphics();
g.setClip(0, 0, chart.getSize().width,
chart.getSize().height+chart.getSize().height+
(chart.getLegend().getSymbolSize()+4) *num_legends);
图表.paint(g);
}
返回图片;
}
【讨论】: