Я создал гистограмму с помощью API JFreeChart v1.5.0 и добавил легенду с заголовком на диаграмму.
Я использовал пример из этой демонстрации гистограммы и добавил следующий код легендык примеру.
//Legend default properties
protected static final boolean LEGEND_ON = true;
private static final RectangleEdge LEGEND_POSITION = RectangleEdge.RIGHT;
private static final String LEGEND_TITLE_TEXT = "Legend";
private static final Font LEGEND_TITLE_FORMAT = new Font(Font.SANS_SERIF, Font.PLAIN, 12);
private static final Color LEGEND_TITLE_COLOR = Color.BLACK;
private static final double LEGEND_MAX_WIDTH = 0.0;
private static final Color LEGEND_BG_COLOR = Color.WHITE;
private static final Color LEGEND_BORDER_COLOR = Color.WHITE;
private static final Font LEGEND_TEXT_FORMAT = new Font(Font.SANS_SERIF, Font.PLAIN, 12);
private static final Color LEGEND_TEXT_COLOR = Color.BLACK;
LegendTitle legend = chart.getLegend();
legend.setPosition(LEGEND_POSITION);
legend.setWidth(LEGEND_MAX_WIDTH);
legend.setBackgroundPaint(LEGEND_BG_COLOR);
legend.setFrame(new BlockBorder(1, 1, 1, 1, LEGEND_BORDER_COLOR));
legend.setItemFont(LEGEND_TEXT_FORMAT);
legend.setItemPaint(LEGEND_TEXT_COLOR);
if (LEGEND_TITLE_TEXT != null) {
TextTitle legendTitle = new TextTitle();
legendTitle.setText(LEGEND_TITLE_TEXT);
legendTitle.setPosition(LEGEND_POSITION);
legendTitle.setPaint(LEGEND_TITLE_COLOR);
legendTitle.setFont(LEGEND_TITLE_FORMAT);
legendTitle.setHorizontalAlignment(HorizontalAlignment.CENTER);
legendTitle.setVerticalAlignment(VerticalAlignment.CENTER);
chart.addSubtitle(1, legendTitle);
}
Когда я запускаю пример вместе с моим кодом легенды, я получаю следующий вывод:
Я заметил, что заголовок легенды отображается неправильно, так как он расположен вертикально, а не горизонтально внутри контейнера легенды с правой стороны (как показано на рисунке ниже для ожидаемого результата). Я попытался сделать несколько шагов, таких как использование TextUtils.drawRotatedString () и TextUtils.drawAlignedString (), но не смог исправить положение заголовка легенды и ее выравнивание.
Как разместить заголовок легенды поверх контейнера легенды ивыровнять его по горизонтали?
Я ищу аналогичный вывод для заголовка легенды, как показано ниже, который был создан с использованием другой структуры диаграммы.
Я хотел бы выровнять и расположить заголовок моей легенды, как показано в выводе выше.