Как отобразить легенду для круговой диаграммы в столбцах?
У меня есть PieChart со многими разделами, легенда для этого PieChart отображает одну строку. Как визуализировать легенду как два столбца?
- Как resize JFreeChart
- JFreeChart PolarPlot: математическая ориентация
- Изменение форм точек в плоскости рассеяния
- JFreechart рисовать дугу на графике
- Преобразование серии JFreeChart TimeSeries с данными дня в данные недели или месяца?
- Использование JFreeChart для отображения последних изменений во временном ряду
- Заполнить JFreechart TimeSeriesCollection из Mysql DB?
- Световая диаграмма JFreechart - странное поведение при перетаскивании
Метод getLegendItem()
, увиденный здесь , предоставляет всю информацию, необходимую для отображения объекта легенды в любом Container
вами Container
. GridLayout(0, 2)
организует их в два столбца для любого количества строк. Чтобы подавить существующую легенду, установите для legend
значение false
когда вы вызываете фабрику диаграмм; элементы будут по-прежнему доступны, как предлагается здесь .
Приложение: на основе PieChartDemo1
этот fragment использует getLegendItems().iterator
и вариант этого ColorIcon
.
public static JPanel createDemoPanel() { JPanel panel = new JPanel(); JFreeChart chart = createChart(createDataset()); panel.add(new ChartPanel(chart)); panel.add(createLegendPanel((PiePlot) chart.getPlot())); return panel; } private static JPanel createLegendPanel(PiePlot plot) { JPanel panel = new JPanel(new GridLayout(0, 2, 5, 5)); Iterator iterator = plot.getLegendItems().iterator(); while (iterator.hasNext()) { LegendItem item = (LegendItem) iterator.next(); JLabel label = new JLabel(item.getLabel()); label.setIcon(new ColorIcon(8, item.getFillPaint())); panel.add(label); } return panel; }
Посмотрите эту тему: Link
Кажется, что-то, что вы ищете. Если нет, отправьте дополнительную информацию или скриншоты о том, что у вас есть и что вам нужно.