Java - Plotting library - java

I am creating an application were I have to do a lot of mathematical calculations and finally print a report with the results(which consists of a lot of statistics/graphs etc.)
I thought about using R in my application. However I did not found a stable library?
Instead I want to use: apache maths and probably some plotting library(graphs).
Therefore,
Do you have any recommendations either on a RToJava and also on a java plotting library?
PS.: One thing I forgot: I am on time pressure on this project and therefore I need something that is stable!

I'm doing some statistical analysis now, using apache-commons-math3 and JFreeChart. JFreeChart itself is free but the developer manual is commercial. But there are plenty of examples and posts to be found on SO and the rest of the web, so if you don't want to buy the manual you can still find all you need to know but it requires a bit of searching.
JFreeChart is probably the most popular charting/plotting library for Java.

Related

Information retrieval in dbpedia using spotlight

I have recently come across dbpedia-spotlight and I want to do an information retrieval. I have a set of queries and dbpedia and using Information retrieval I need to get the output. I was not able to understand the documentation so can you give me a sample code to start working.
I have tried terrier but that was equally difficult.
Terrier is more popular as a research tool, where you can try out various standard IR models against standard test collections, e.g. TREC, ClueWeb etc.
If you want to develop quickly a reasonably functional search system, Lucene is the best thing to try. Go through this Lucene in 5 minutes tutorial. I guess this should be fairly simple to use.

Java image manipulation libraries?

Any suggestions for Java image manipulation libraries? I want to find a way of getting the coordinates of say, a line.
Thanks.
IMAGEJ: http://rsbweb.nih.gov/ij/
BoofCV: http://boofcv.org
Fiji: http://fiji.sc/wiki/index.php/Fiji
Rapidminer with IMMI: http://www.burgsys.com/image-mining
Haven't used it myself, but ImageJ seems to be a pretty good choice for image analysis and processing.
After reading your comments it seems you need Vector manipulation stuff.
JTS is very popular in this field. Take a look at it - http://www.vividsolutions.com/jts/jtshome.htm . JTS Topology Suite is an API of 2D spatial predicates and functions. Also its Free and Open Source.
Your question is bit confusing. When you say "Image Manipulation" many people will think of scalars.
see following website for more info
http://www.jhlabs.com/
Java is fine for vector calculations on modern hardware. Unfortunately, raster libraries written purely in Java (e.g. ImageJ) is much slower compared to their native counterparts. From what I can see, this happens because:
It's impossible to use vector CPU instructions;
Extra bounds checks when iterating over pixel arrays;
Garbage Collector that may start working in the middle of your algorithm.
After trying several approaches, we ended with a native library based on FreeImage and TurboJPEG that does processing for us. Our java app (Visual Watermark) calls it via JNI interface.

tool to graph method calls over time

I'm looking for a tool that can graph method calls over time for a java app. Perhaps a profiler or other log parsing tool?
I know I can write something in python and I'll work towards doing this. I was just hoping not to reinvent the wheel.
edit:
What I ended up doing was writing some python to parse my logs and take snapshots at 5 second intervals. Then I used google docs and a spreadsheet to visualize my data with a chart that had 2 columns of data: time and frequency. Google docs was super useful. Use the "move chart to own sheet" for a nice fullsize view. I'll post my python when I clean it up a bit.
here is the output graph from the method I specify in my comment
Check out JProfiler. I wouldn't suggesting writing your own tool, this is a space with lots of players already....unless you're really looking for something to do. :-)
you can also check the NetBeans profiler, that's quite straight forward if you application a standard Java code (I mean, it's a bit more complicated with projects deployed in Glassfish for instance)
(from Google Image from Dr. Dobbs)
EDIT: sorry, after another look at your question, it's not exactly what you were looking for, but it might be interesting anyway
YourKit Java Profiler is probably the most powerful Java profiler out there. It is not free but not unreasonably expensive either. If it doesn't have the feature you are looking for, I kinda doubt any application would.
VisualVM is a visual tool integrating several commandline JDK tools and lightweight profiling capabilities. Designed for both production and development time use, it further enhances the capability of monitoring and performance analysis for the Java SE platform.

Embedding dendrogram in Java

I'm looking for a library capable of drawing dendrograms of data in Java (not calculating them, I can do it by myself).. do you have any clues? Already tried to search it over Google but haven't found anything that is not stand-alone (while I need to embed the generation inside my program).
Thanks!
Check out the JUNG graph library. It won't perform the actual clustering for you but is a really good library for visualising your results.
Take a look at Archaeopteryx. It has fairly many features; it's open source, and it is available in a pre-packaged jar file.
BTW, I use JUNG and really like it. It can perform various clusterings, but AFAIK, it has no inherent dendrogram capabilities. Because it has graphing capabilities, you could roll your own dendrogram, but it would take some work.

Graph Control in Java/Netbeans? Does it exist?

Is it possible that anyone has a link to a graph class/library that I can use to produce a graph in Java?
Thanks for any help!
My top choice would be JGraph as others have suggested; I am using JGraph5 because it is better documented than the newer alternative, JGraphX. EDIT: JGraphX turns out to be the far superior version, despite the lack of documentation. It's not that hard to figure out.
JGraph
Demonstration app
Feature list
Licensing agreement
Other alternatives I've researched:
JGraphT
"JGraphT is a free Java graph library that provides mathematical graph-theory objects and algorithms...complete source code included, under the terms of the GNU Lesser General Public License." (http://jgrapht.sourceforge.net/)
Main project repository
Example visualizations
JUNG - Java Universal Network/Graph Framework
Main project repository
yEd Graph Editor
Implementation of yFiles library
Demonstration Java applet
About yEd
Saves graphs in GraphML format
I used JGraph as a visualizer for networks of nodes/topologies at my previous job, it's not half bad once you get past the architecture (it's a big state machine if I recall correctly).
Visual graph: JFreeChart
You may also wish to consider the Google Charts API, if you can make web service requests.
A really good alternative is to used the Google Charts API. Platform independent, easy to use, and fast processing (done on Google Server side)
graphviz would be my choice. It's not Java, but still terrific and easy to use.
There is a Java component that works with dot to generate graphs. I've used it - very nice, indeed.
I would recommend JGraphT. I used it to create multi-leveled graphs in my dissertation and as the base of a GPS Routing Software, understanding what is going on I found a bit of a mind bender, but once looking at how the algorithms package works I found it quite easy to implement A*/D* heuristic algorithms. For working out the distance between nodes on the graph I'd also recommend looking at the Haversine function, if that's your thing.

Categories

Resources