Our WebCharter transformer can make nice bar charts. We can control multiple parameters including color scheme:

User-added image    User-added imageUser-added image

However, we can't make each bar to have its own color, as can easily be done in Excel:

User-added image

The Google Chart API allows setting individual colors to the bars - click here for details, but at this point, FME does not expose this functionality through the transformer interface. It can be done through the construction of a custom URL, but here is another solution that uses native FME techniques (see attached workspace):

User-added image

After we get an image from Google Chart,

User-added image

we separate bars from the rest of the image contents (background, axes, and labels) using the RasterExpressionEvaluator:

if(A[0]==A[1]&&A[0]==A[2],0,100);if(A[0]==A[1]&&A[0]==A[2],0,100);if(A[0]==A[1]&&A[0]==A[2],0,100)

This simple formula compares red, green, and blue values of each pixel, and if they are the same, we either deal with the background, axes, or labels (of course, this will work if the chart's color scheme is not black and white or grayscale). We set their color to 0, and make it NODATA. Now only our bars consist of data cells.

It this example, we use the RasterExtentsExtractor to extract bars as vector polygons. Then we simply set some random color on each bar, and, using the VectorOnRasterOverlayer, put them back on the image. Its original bars will be overwritten with the new colored ones, the rest - axes and labels will stay untouched:

User-added image

We can apply some other coloring technique - for example, color may depend on the attribute value.