The only Linux package I have found that generates both Flash and PNG
graphs is the Swiff Chart Generator.
Swiff Chart Generator is the server-side solution to dynamically
serve eye-catching animated charts from Active Server Pages
(ASP), PHP scripts or JSP scripts. Query data from a database,
apply your own style template created with the Swiff Chart
authoring tool and instantly generates high-impact charts
in Macromedia Flash format, PNG/JPG format, SVG format and
GlobFX: Swiff Chart Generator
Swiff Chart Generator is fairly pricey at $899 per server. Moreover,
although the Chart Generator runs on a Linux server to dynamically serve
your graphs, the chart styles have to be designed with a Windows package,
Swiff Chart 3, which costs $149.
GlobFX: Swiff Chart
As a less expensive alternative, you could generate Flash graphs and PNG
graphs from the same data source using two different packages. Of course,
you would have to tweak the respective graph styles to make them resemble
each other as much as possible.
JpGraph uses PHP to generate PNG charts. It is free for personal use
and costs 85 Euros for a single-server commercial license.
Another package for generating PNG charts through PNG is PanaChart,
which is an open-source package and therefore costs zero dollars.
PanaChart: Online Demo
You can use various scripting and programming languages, not just PHP, to
make ChartDirector generate PNG charts. A single-server license costs $99.
Advanced Software Engineering: ChartDirector
Advanced Software Engineering: ChartDirector Interactive Financial Chart
If the chart interactivity offered by JpGraph or ChartDirector isn't
enough for you, and you feel Flash is a necessity, you can generate
Flash charts with PHP/SWF Charts. This package costs $45 for one domain.
Use PHP scripts to generate or gather the data from databases,
then pass it to this tool to generate Flash (swf) charts and
graphs. Any other scripting language (ASP, CFML, Perl, etc.) can
be used with XML/SWF Charts (the XML version of the same tool.)
PHP/SWF Charts: Introduction
Instead of generating the Flash charts with a separate program, you can
automatically convert the PNG charts into Flash with a utility such as
png2swf from the SWF Tools package.
SWF Tools is a collection of SWF manipulation and creation
utilities written by Rainer Böhme and Matthias Kramm. It is
released under the GPL. Included are:
# PNG2SWF: Like JPEG2SWF, only for PNGs.
# GIF2SWF: Converts GIFs to SWF. Also able to handle
# RFXSWF Library: A fully featured library which
can be used for standalone SWF generation. Includes
support for Bitmaps, Buttons, Shapes, Text, Fonts,
Sound etc. It also has support for ActionScript using
the Ming ActionCompiler.
SWF Tools: Home
It has been an interesting challenge to answer your question. If you have
any concerns about the accuracy or completeness of my research, please
advise me through a Clarification Request and allow me the opportunity
to fully meet your needs before you rate this answer.
generate png chart linux
flash charting linux
php charting linux
png flash convert linux
Request for Answer Clarification by
17 May 2006 15:23 PDT
Thanks for taking the challenge! One thing remains unclear to me:
among the 3 Flash options: (1) Swiff Chart Generator, (2) PHP/SWF
Charts and (3) SWF Tools, can I add/implement custom user interactions
to manipulate the resulting graph? and how (e.g., using the
Clarification of Answer by
17 May 2006 20:27 PDT
Swiff Chart Generator has no interactivity built in. The product FAQ
has this to say about adding Flash interactions to a generated chart.
Is it possible to insert clickable links in the charts generated
with Swiff Chart Generator?
Clickable links insertion is not a built-in feature in Swiff
Chart Generator. However, since Swiff Chart Generator produces
Flash movies, the best solution to add some clickable links
on top of your chart is to embed the chart in a parent Flash
movie by calling the LoadMovie action script method and to place
clickable links in the parent Flash Movie itself.
GlobFX: Swiff Chart Generator: FAQ
PHP/SWF Charts does have built-in support for user interaction. Listed
among its features are the following.
# Live and interactive chart updates without reloading the
# Clickable charts, and drill-down
PHP/SWF Charts: Introduction
The FAQ for PHP/SWF Charts mentions one particular way to add
interactivity to charts.
Allow users to drill-down to get more details. For example,
instead of showing data for each day of the year, group and
average the daily values for each month to end up with just 12
monthly values. Each could be clicked (using link_data) to show
the daily values just for the corresponding month.
PHP/SWF Charts: FAQ
The documentation for PHP/SWF Charts' link_data attribute provides
link_data's URL should point to a script to process clicks and
provide the user with additional information about the clicked
elements. When the user clicks a chart element, information
determining which element was clicked is appended to the URL
before calling it. A script on the other end should read which
chart element was clicked and process the action accordingly.
PHP/SWF Charts: Reference: link_data
The link attribute provides further possibilities for user interaction
in PHP/SWF Charts.
Place links over design elements that look like buttons to produce
functional buttons (see the example below.) These buttons can do
anything from printing, to jumping to other web pages, to changing
anything in the chart (like turning off series, changing colors,
adding or removing data, etc.)
PHP/SWF Charts: Reference: link
If you choose to convert PNG charts into Flash charts using SWF Tools, you
can use the RFXSWF library that comes with SWF Tools to programmatically
add interactive Flash features such as buttons and animation. This
library also lets you hook into the Ming ActionCompiler, so that you
can add any kind of ActionScript to the Flash chart.
Ming is a C library for generating SWF ("Flash") format movies,
plus a set of wrappers for using the library from C++ and popular
scripting languages like PHP, Perl, Python, and Ruby.