根据键值更改StackedBarChart颜色

时间:2014-04-15 09:36:28

标签: colors jfreechart pie-chart stackedbarseries

我想使用键值修改stackedBarChart的颜色。我知道如何为饼图执行此操作,但我无法为stackedBarCharts完成相同的操作。

对于饼形图,基本上我的方法类似于here

所述的答案

需要注意的代码行是:

PiePlot plot = (PiePlot) chart.getPlot();
plot.setSectionPaint("J+1", Color.black);
plot.setSectionPaint("J-1", new Color(120, 0, 120));

然而对于StackedBarChart,我不确定如何做,基本上我必须修改下面的现有jfreechart代码:

 public static JFreeChart createStackedBarChart(final String title,
                        final CategoryDataset dataset) {

                JFreeChart sectorChart = ChartFactory.createStackedBarChart(title, "",
                                "", dataset, PlotOrientation.VERTICAL, true, false, false);

                CategoryPlot plot = (CategoryPlot) sectorChart.getPlot();
                formatCategoryPlot(plot);
                sectorChart.getLegend().setBorder(0, 0, 0, 0);
                sectorChart.setBorderVisible(false);
                sectorChart.setBorderPaint(Color.white);
                plot.setOutlineVisible(false);
                StackedBarRenderer renderer = (StackedBarRenderer) plot.getRenderer();


                return Chart;

        }

所以我的问题是,是否有相当于

PiePlot plot = (PiePlot) chart.getPlot();
plot.setSectionPaint("J+1", Color.black);
stackBarCharts的

?如果是,我该如何使用它?

我可以从网络资源中看到有关于setSeriesPaint的内容,但这似乎是根据索引更改颜色。我想根据标签更改颜色,例如" J + 1"。

1 个答案:

答案 0 :(得分:1)

您可以覆盖渲染器的getItemPaint()方法,如图here所示。

image