When a Chart Runs you can redefine the palette colors based on the number of datapoints or some other script value. An example of that approach is located here:<br />
<br />
http://www.birt-exchange.org/devshare/designing-birt-reports/826-chart-script-to-alter-palette-gradient-pie/#description<br />
<br />
This example takes one value from a series and defines a color for it using the beforeDrawDataPoint and beforeDrawLegendItem scripts.
function beforeDrawDataPoint( dph, fill, icsc )
{
if( dph.getBaseDisplayValue() == "Trains" ){
importPackage( Packages.org.eclipse.birt.chart.model.attribute.impl );
var mycolor = ColorDefinitionImpl.ORANGE();
r = mycolor.getRed();
g = mycolor.getGreen();
b = mycolor.getBlue();
fill.set(r, g, b);
}
}
function beforeDrawLegendItem( lerh, bounds, icsc )
{
if( lerh.getLabel().getCaption().getValue() == "Trains"){
importPackage( Packages.org.eclipse.birt.chart.model.attribute.impl );
var mycolor = ColorDefinitionImpl.ORANGE();
r = mycolor.getRed();
g = mycolor.getGreen();
b = mycolor.getBlue();
lerh.getFill().set(r, g, b);
}
}