如何在图像上显示图表的许多图例

时间:2011-01-25 12:13:21

标签: java charts jfreechart jcchart

我必须在将图表转换为图像时显示图像上为图表创建的所有图例。但是图例的数量很大程度上是由于图例从底部切割而且图像上只显示了少量图例

所以请任何机构告诉我如何解决这个问题

2 个答案:

答案 0 :(得分:0)

您可以将图表转换为如下图像:

OutputStream out = ...
org.jfree.chart.ChartUtilities.writeChartAsPNG(out, chart, width, height, null, true, 0);

这是你正在使用的方法吗?

答案 1 :(得分:0)

要为JCChart创建图表图像我使用JCChart的快照(JCChart,int)方法,它将返回图表的图像。因此,要显示所有图例,我们必须覆盖快照方法,如下所示

公共图像快照(JCChart图表,int num_legends){
      图像image = chart.createImage(chart.getSize()。width,chart.getSize()。height +
                        (chart.getLegend()getSymbolSize()+ 4)* num_legends);
      if(image!= null)
      {
           图形g = image.getGraphics();
           g.setClip(0,0,chart.getSize()。width,
chart.getSize()。height + chart.getSize()。height +
(chart.getLegend()。getSymbolSize()+ 4)* num_legends);
                chart.paint(克);
            }
            返回图像;
        }