Скрыть некоторые метки категорий в JFreeChart, чтобы избежать наложения

Я генерирую StackedBarChart, используя JFreeChart. В зависимости от входных данных у меня может быть много категорий (обычно между 20 и 40), что приводит к перекрытию меток. На следующем скриншоте вы можете увидеть график с категориями от 1 до 38:

chart with categories from 1 to 38, overlapping labels

Я хотел бы показать некоторые ярлыки категорий в качестве справочных, но не все. Было бы идеально показать первый и последний, и каждый пятый между ними. Это возможно?

Я не могу изменить ширину диаграммы, и уменьшение меток работает только в том случае, если они настолько малы, что вы больше не можете их читать ... В крайнем случае было бы скрыть всю категорию оси ...

Спасибо за любые предложения!

Ответы на вопрос(2)

Решение Вопроса

Одно простое решение состоит в том, чтобы установить метки категории на цвет фона (в данном случае белый).

    CategoryPlot plot = (CategoryPlot) chart.getPlot();
    CategoryAxis domainAxis = plot.getDomainAxis();
    domainAxis.setTickLabelPaint("Category 2", Color.white);
    domainAxis.setTickLabelPaint("Category 4", Color.white);

Это создаст диаграмму как это

enter image description here

 moeTi11 июн. 2012 г., 10:33
вероятно, не самое красивое решение, но оно работает, и я не нашел лучшего. используя его теперь с прозрачным цветом (new Color(0,0,0,0) )
 11 июн. 2012 г., 11:26
@moeTi Согласен, это не самое красивое решение. Другое решение состоит в том, чтобы переопределить getTickLabelPaint, но для этого все еще требуется использование метки категории, а не решение, основанное на доступном пространстве.

setVerticalTickLabels(true) на оси вашего домена, как показано в этомпример.

Приложение: Ой,пример цитируется дляValueAxis, ДляCategoryAxisкак используется вStackedBarChartу вас есть еще больше гибкости с методомsetCategoryLabelPositions(), Типичное использование иллюстрируется вBarChartDemo1 источник, показанныйВот.

 moeTi11 июн. 2012 г., 10:17
да, я тоже это пробовал, но все равно это выглядит не очень хорошо, потому что слишком много категорий. метки уже узкие (1-2 цифры), так что поворот их вверх или вниз на самом деле ничего не меняет.

Ваш ответ на вопрос