Как визуализировать значения даты на оси X LineChart в 2 строки, используя JFreeChart? - PullRequest
0 голосов
/ 18 марта 2019

Я использую JFreeChart для рендеринга LineChart, используя CategoryPlot.Что-то вроде:

JFreeChart chart = ChartFactory.createLineChart("Daily Revenue",
                "Days", "Revenue", dataset);

        CategoryPlot plot = chart.getCategoryPlot(); 

Так что, как вы понимаете, мне нужно отобразить полное время, например 23 Feb'18 11:00:00 на оси X, наклоненной на 45 градусов, чего я могу достичь, используя

CategoryAxis categoryAxis = chart.getCategoryPlot().getDomainAxis();
categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);

Но я хочу отобразить свой текст на XAxis в 2 строки, примерно так:

23 Feb'18 
11:00:00

наклонен на 45 градусов.Для чего я пытался использовать

CategoryAxis categoryAxis = chart.getCategoryPlot().getDomainAxis();         
categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
categoryAxis.setMaximumCategoryLabelLines(5);

безуспешно, так как я могу добиться этого ??

1 Ответ

0 голосов
/ 18 марта 2019

После некоторого самостоятельного исследования я обнаружил, что при уменьшении значений ширины и высоты изображения JFreeChart с помощью команды ChartUtilities.encodeAsPNG(chart.createBufferedImage(500, 300)); текст автоматически подстраивается под новую строку.

Так что через некоторое времяисследования, я получил эту команду, которая делает работу за меня.Создавая объект CategoryAxis вдоль X-Axis so getDomainAxis() для Y-Axis it is getRangeAxis()

CategoryAxis domainAxis = chart.getCategoryPlot().getDomainAxis();
domainAxis.setMaximumCategoryLabelWidthRatio(0.25f);

, мы используем .setMaximumCategoryLabelWidthRatio(float ratio) и настраиваем его в соответствии с вашими требованиями !!

...