как отобразить много легенд для диаграммы на изображении

Я должен показать все легенды, созданные для диаграммы, на изображении при преобразовании диаграммы в изображение. Но количество легенд много, из-за чего легенды обрезаются снизу, и на изображении появляется только несколько легенд.

Так что, пожалуйста, может ли кто-нибудь сказать мне, как решить эту проблему


person agarwal_achhnera    schedule 25.01.2011    source источник
comment
Какая версия JFreeChart? Можете ли вы показать пример?   -  person trashgod    schedule 25.01.2011


Ответы (2)


Вы можете преобразовать диаграмму в изображение следующим образом:

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

Это метод, который вы используете?

person Guillaume    schedule 25.01.2011
comment
на самом деле я использую jcchart, и когда диаграмма отображается, тогда, если есть много легенд, а не только те легенды, которые соответствуют размеру отображения диаграммы, а остальные reagio отбрасываются. - person agarwal_achhnera; 25.01.2011
comment
Я не уверен, что понимаю, что вы делаете, не могли бы вы опубликовать код или хотя бы скриншот? - person Guillaume; 25.01.2011

Чтобы создать изображение диаграммы для JCChart, я использую метод snapshot(JCChart,int) JCChart, он вернет изображение диаграммы. Таким образом, чтобы отобразить все легенды, нам придется переопределить метод моментального снимка следующим образом

общедоступный снимок изображения (диаграмма JCChart, int num_legends){
Image image = chart.createImage(chart.getSize().width, chart.getSize().height+
(chart.getLegend().getSymbolSize( )+4)*num_legends);
if(image != null)
{
Graphics g = image.getGraphics();
g.setClip(0, 0, chart .getSize().width,
chart.getSize().height+chart.getSize().height+
(chart.getLegend().getSymbolSize()+4)*num_legends);
chart.paint(g);
}
вернуть изображение;
}

person agarwal_achhnera    schedule 18.06.2011