Hello!
How to change the Color of the specific bars within a category?
plot.getRenderer().setSeriesPaint does not work for the category, but for the series.
I would like to define different series to each category
Thx
Olli
Change the Category Color of a barchart
I created only one category, added all the tasks, created a custom bar renderer ( which set a color based on the item label ) and set this renderer to the plot.
Here is the sample code for the renderer ( adapt this code to BarRenderer ):
-- pady
Here is the sample code for the renderer ( adapt this code to BarRenderer ):
Code: Select all
import org.jfree.chart.renderer.category.*;
import java.awt.*;
import org.jfree.chart.renderer.category.*;
import java.awt.geom.*;
import org.jfree.chart.plot.*;
import org.jfree.chart.axis.*;
import org.jfree.data.gantt.*;
public class CustomRenderer extends GanttRenderer {
public CustomRenderer() {
}
protected void drawTask(Graphics2D g2,
CategoryItemRendererState state,
Rectangle2D dataArea,
CategoryPlot plot,
CategoryAxis domainAxis,
ValueAxis rangeAxis,
GanttCategoryDataset dataset,
int row,
int column) {
setColor(g2, dataset, row, column);
super.drawTask(g2, state, dataArea, plot, domainAxis, rangeAxis, dataset, row, column);
}
protected void drawTasks(Graphics2D g2,
CategoryItemRendererState state,
Rectangle2D dataArea,
CategoryPlot plot,
CategoryAxis domainAxis,
ValueAxis rangeAxis,
GanttCategoryDataset dataset,
int row,
int column) {
setColor(g2, dataset, row, column);
super.drawTasks(g2, state, dataArea, plot, domainAxis, rangeAxis, dataset, row, column);
}
private void setColor(Graphics2D g2,
GanttCategoryDataset dataset, int row, int column) {
String str = (String)dataset.getColumnKey(column);
if ( str.equals("Task 1") )
setSeriesPaint(0, Color.blue);
else
setSeriesPaint(0, Color.green);
}
}
-- pady