Изменить цвета StackedBarChart на основе ключевых значений

Я хотел бы изменить цвета stackedBarChart, используя ключевые значения. Я знаю, как сделать это для круговых диаграмм, но не могу сделать то же самое для StackedBarCharts.

Для круговых, по сути, мой подход похож на ответ, изложенный здесь

Строки кода, чтобы отметить:

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);

для StackedBarCharts? Если да, как я могу его использовать?

По веб-ресурсам я вижу, что в setSeriesPaint что-то есть, но кажется, что цвета меняются в зависимости от индекса. Я хотел бы изменить цвета на основе меток, таких как "J+1".

1 ответ

Вы можете переопределить рендер getItemPaint() метод, как показано здесь.

образ

Другие вопросы по тегам