views:

2400

answers:

8

I know the following libraries for drawing charts in an SWT/Eclipse RCP application:

Which other libraries are there for drawing pretty charts with SWT? Or charts in Java generally? After all, you can always display an image...

A: 

There's also JGraph, but I'm not sure if that's only for graphs (i.e. nodes and edges), or if it does charts also.

FreeMemory
A: 

Here's something different: it's very to embed web pages in SWT views. I recently tried it and it works very well. You can see where this is going: there are plenty of beautiful charting components for HTML, it could be an option. Just make sure the component is client-side only (unless you want to start a server).

I haven't tested Flash, but I'm pretty sure you can get it to work (naturally, this means your software will require Flash plug-in installed).

zvikico
+4  A: 

I have not used BIRT or JGraph, however I use JFreeChart in my SWT application. I have found the best way to use JFreeChart in SWT is by making a composite an AWT frame and using the AWT functionality for JFreeChart. The way to do this is by creating a composite

Composite comp = new Composite(parent, SWT.NONE | SWT.EMBEDDED);
Frame frame = SWT_AWT.new_Frame(comp);
JFreeChart chart = createChart();
ChartPanel chartPanel = new ChartPanel(chart);
frame.add(chartPanel);

There are several problems in regards to implementations across different platforms as well as the SWT code in it is very poor (in its defense Mr. Gilbert does not know SWT well and it is made for AWT). My two biggest problems are as AWT events bubble up through SWT there are some erroneous events fired and due to wrapping the AWT frame JFreeChart becomes substantially slower.

@zvikico

The idea of putting the chart into a web page is probably not a great way to go. There are a few problems first being how Eclipse handles integrating the web browser on different platforms is inconsistent. Also from my understanding of a few graphing packages for the web they are server side requiring that setup, also many companies including mine use proxy servers and sometimes this creates issues with the Eclipse web browsing.

Ryan P
FYI, JFreeChart has got experimental SWT integration. We use it successfully in a production application.
Martin Klinke
A: 

There’s also ILOG JViews Charts which looks pretty feature-complete… if you can afford it. Here is some additional infos on using it with eclipse.

Tibi
A: 

JCharts is another option. It is similar to JFreeChart but the documentation is free. It does not have direct support for SWT but you can always generate an image and embed it in an SWT frame.

Chris Dail
+2  A: 

SWTChart gives good results for line, scatter, bar, and area charts. The API is straight forward and there are numerous examples on the website. I went from finding it on google to viewing my data in less than an hour.

SWTChart

Caleb Peterson
A: 

The one I've used are JChart2D and JFreeChart. I did a live plotter application over the summer and used JFreeChart for that. The guy who had started the project had used JChart2D but I found that it doesn't have enough options for tweaking the chart look and feel.

JChart2D is supposed to be very fast so if you need to do live plotting have a look at it, although JFreeChart didn't have any problems doing a plot a few times per second.

There also quite a list of charting libraries on java2s.com

Matti
A: 

I suggest you try http://code.google.com/p/jzy3d, a simple java library for plotting 3d data. It's for java, on AWT, Swing or SWT. Regards, Martin

Martin