Hi there.
I have been scouring the internet looking for a graphing tool that I can integrate into a web application I am working on. Specifically, I'm looking for the following functionality:
Options I have investigated include the many Flash packages provided for free (unfortunately not appropriate due to the lack of Flash support on the iPad), and many free or open-source Java libraries, the most attractive of which at this point looks to be JFreeChart. I have also looked into some higher level options, but most of those seem to be aimed toward a user supplying the data manually, then tweaking the graph until satisfied, at which point they manually save or export to a chosen format. I, however, require almost complete automation in data gathering and output production. In my experience these higher level tools do not provide an API for programmatic graph generation.
Advantages of JFreeChart are that it can be run server-side in a servlet or JSP, and being open source it has a high degree of customization. Disadvantages are that it requires substantial developer resources to put together into a usable web application, and that it cannot, on its own, produce content in a web-friendly form. At this point my ideas include using the Batik library in conjunction with JFreeChart to produce SVG images, which can then be served to the client.
My basic problem is that I would like higher level functionality than JFreeChart, but lower level functionality than that of many out-of-the-box solutions which require a lot of physical interaction with the client. I want to be able to give this tool the source data, and receive an HTML page or SVG representation of the graph.
Open source and free tools are always preferred, though my budget would allow for reasonable licensing fees.
Are there any obvious solutions that I have overlooked?
I have been scouring the internet looking for a graphing tool that I can integrate into a web application I am working on. Specifically, I'm looking for the following functionality:
- Ability to generate highly customizable graphs of professional image quality. Minimum requirement: custom background images.
- Ability to gather data from arbitrary sources, or at least from a specific source, such as XML, which could be edited by an external process (in other words, minimal manual data entry).
- Ability to either serve the client directly via a browser plugin of some sort, or produce images in web-friendly formats such as SVG or PDF, to be served to the client via servlet.
Options I have investigated include the many Flash packages provided for free (unfortunately not appropriate due to the lack of Flash support on the iPad), and many free or open-source Java libraries, the most attractive of which at this point looks to be JFreeChart. I have also looked into some higher level options, but most of those seem to be aimed toward a user supplying the data manually, then tweaking the graph until satisfied, at which point they manually save or export to a chosen format. I, however, require almost complete automation in data gathering and output production. In my experience these higher level tools do not provide an API for programmatic graph generation.
Advantages of JFreeChart are that it can be run server-side in a servlet or JSP, and being open source it has a high degree of customization. Disadvantages are that it requires substantial developer resources to put together into a usable web application, and that it cannot, on its own, produce content in a web-friendly form. At this point my ideas include using the Batik library in conjunction with JFreeChart to produce SVG images, which can then be served to the client.
My basic problem is that I would like higher level functionality than JFreeChart, but lower level functionality than that of many out-of-the-box solutions which require a lot of physical interaction with the client. I want to be able to give this tool the source data, and receive an HTML page or SVG representation of the graph.
Open source and free tools are always preferred, though my budget would allow for reasonable licensing fees.
Are there any obvious solutions that I have overlooked?