[{InsertPage page=ImageGenHeader}]

! Introduction

[JFreeChart|http://www.jfree.org/jfreechart/] is a free Java class library for
generating charts. It is used by many top open source projects including
[StatCvs|http://statcvs.sf.net/] and [JBoss|http://www.jboss.org/].

! ~JFreeChart Plugins

Package: {{org.nascif.jspwiki.plugin.imagegen.jfreechart}}

* [BarChartPlugin]
* [BubbleChartPlugin]
* [GanttChartPlugin]
* [LineChartPlugin]
* [MultiplePieChartPlugin]
* [PieChartPlugin]
* [PolarChartPlugin]
* [ScatterPlotChartPlugin]
* [SpiderWebChartPlugin]
* [StackedBarChart] 
* [StackedXYAreaChartPlugin]
* [TimeSeriesChartPlugin]
* [WaterfallChartPlugin]
* [XYAreaChartPlugin]
* [XYLineChartPlugin]
* [XYStepAreaChartPlugin]
* [XYStepChartPlugin]

! ~JFreeChart Syntax 

The syntax used to describe ~JFreeChart data is a simple
extension of the standard comma-separated-values (CSV) format. In general, you
can define a chart just by providing its data as a list of CSV lines. For example:

{{{
Testing, 10, 34, 56
Implementation, 23, 55, 66
'Usability study', 12, 45, 5
}}}

The wiki markup syntax is also supported; table headers are ignored.

Some charts also use data information to name data series or categories; in that case
the data will be ''nested'', which is indicated by prefixing it with one or more
'*'. For example:

{{{
Coding
* 'Design', 3-2001, 4-2001, 0.7
* 'Implementation', 4-2001, 6-2001, 0
** 'First task', 4-2001, 5-2001, 0
** 'Second task', 5-2001, 6-2001, 0.4

Testing
* 'Test1', 5-2001, 6-2001, 0.1
* 'Test2', 6-2001, 7-2001, 0.3
* 'Test3', 7-2001, 7-2001, 0.8
}}}

You may also need to specify ''metadata'' information to introduce column names
and types (if non-numeric). A metadata definition is a line that starts with
':'. It is also read as a CSV line: each value specifies a column and values are
separated by ','. A column definition is a name, followed by an optional '|',
followed by a type indicator - one of "String", "Number" (the default) or a time
period name ("Year", "Quarter", "Month", "Week", "Day", "Hour", "Minute" or
"Millisecond"). Time periods may in turn be followed by a date format string as
defined in the Java [SimpleDateFormat|http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html]. For example:

{{{
:Country|String, V1, V2, V3 
France, 13, 15, 26

:Date|Day|MM/dd/yyyy,Alert,High,Medium,Low
02/01/2006,0, 	3, 	6, 	13
02/02/2006,0, 	3, 	6, 	10
02/03/2006,0, 	5, 	9, 	11
}}}


See the plugin pages for specific examples.