【问题标题】:how to display many legends for chart on the image如何在图像上显示许多图表的图例
【发布时间】:2011-01-25 12:13:20
【问题描述】:

在将图表转换为图像时,我必须在图像上显示为图表创建的所有图例。但是图例的数量很多,因为图例是从底部切掉的,图像上只出现了很少的图例.

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

【问题讨论】:

  • 什么版本的 JFreeChart?你能举个例子吗?

标签: java charts jfreechart jcchart


【解决方案1】:

您可以像这样将图表转换为图像:

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

你用的是这个方法吗?

【讨论】:

  • 实际上我正在使用 jcchart,当图表被放大时,如果有很多图例,而不仅仅是那些适合图表显示大小和剩余区域的图例被丢弃
  • 我不确定你在做什么,你能发布代码或至少截图吗?
【解决方案2】:

要为 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);
}
返回图片;
}

【讨论】:

    猜你喜欢
    • 2020-11-16
    • 2013-12-18
    • 2012-05-04
    • 1970-01-01
    • 2017-11-20
    • 1970-01-01
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多