Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Посоветуйте библиотеку для построения графиков


Автор: AxNe0 25.2.2008, 03:47
Всем доброго времени суток!
Возникла задача - из txt файла взять данные и построить по ним график... Advanced Grapher с этим почему-то не справляется (импортирует либо одну, либо ни одной строк), посему, посоветуйте, пожалуйста, какую библиотеку выбрать...
Основные требования: простота и быстроизучаемость и возможность экспорта в jpg, png или любой другой граф.формат.
Спасибо!

Автор: LSD 25.2.2008, 14:20
Посмотри http://sourceforge.net/projects/jfreechart.

Автор: Vasay 25.2.2008, 14:34
http://forum.vingrad.ru/forum/topic-139056.html

Здесь есть дока.

Автор: AxNe0 25.2.2008, 17:00
Всем спасибо smile я тоже остановился на JFreeChart, оказалось довольно удобно...
Кстати, появился вопрос... Я сохраняю в png файл, но иногда выскакивает:
Цитата
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
    at org.jfree.chart.block.FlowArrangement.arrangeNN(FlowArrangement.java:365)
    at org.jfree.chart.block.FlowArrangement.arrangeRR(FlowArrangement.java:283)
    at org.jfree.chart.block.FlowArrangement.arrange(FlowArrangement.java:158)
    at org.jfree.chart.block.BlockContainer.arrange(BlockContainer.java:181)
    at org.jfree.chart.title.LegendTitle.arrange(LegendTitle.java:486)
    at org.jfree.chart.JFreeChart.drawTitle(JFreeChart.java:1317)
    at org.jfree.chart.JFreeChart.draw(JFreeChart.java:1208)
    at org.jfree.chart.JFreeChart.createBufferedImage(JFreeChart.java:1396)
    at org.jfree.chart.JFreeChart.createBufferedImage(JFreeChart.java:1376)
    at org.jfree.chart.ChartUtilities.writeChartAsPNG(ChartUtilities.java:168)
    at org.jfree.chart.ChartUtilities.saveChartAsPNG(ChartUtilities.java:305)
    at org.jfree.chart.ChartUtilities.saveChartAsPNG(ChartUtilities.java:278)
    at LineChart.main(LineChart.java:52)

Из-за чего это происходит?
вот код:
Код
    XYSeries series = new XYSeries("Result");
            series.add(1.2, 3.4);
            series.add(2.2, 4.4);
        
    XYDataset xyDataset = new XYSeriesCollection(series);
    JFreeChart chart = ChartFactory.createXYLineChart
                         ("Sample XY Chart",  // Title
                          "Height",           // X-Axis label
                          "Weight",           // Y-Axis label
                          xyDataset,          // Dataset
                          PlotOrientation.VERTICAL,
                          true, // Show legend
                          true,
                          false
                         );    
    
    int w = 1000;
    int h = 800;    

    try {
        ChartUtilities.saveChartAsPNG(new File("file.png"), chart, w, h);
    } catch (IOException e) {
        e.printStackTrace();
    }

Автор: Vasay 25.2.2008, 17:08
Просто предположение:

Может это как-то связано с 


Код

    int w = 1000;
    int h = 800;  


?

Автор: AxNe0 26.2.2008, 17:51
неа smile w, h - соответственно ширина и высота картинки в пикселях...

Автор: Kangaroo 26.2.2008, 17:57
AxNe0
она же ОпенСорсная? 
Посмотри что там на строке org.jfree.chart.block.FlowArrangement.arrangeNN(FlowArrangement.java:365)

Автор: Zlatogorov 27.2.2008, 20:46
BIRT также хорош. Попрбуйте.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)