0

我正在使用 JFreeChart 使用 CategoryPlot 呈现 LineChart。就像是:

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

        CategoryPlot plot = chart.getCategoryPlot(); 

因此,您可以理解,我必须像23 Feb'18 11:00:00在倾斜到 45 度的 XAxis 上那样显示完整时间,我可以使用它来实现

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

没有成功,我怎么能做到这一点?

4

1 回答 1

0

经过一些自我研究后,我发现在通过ChartUtilities.encodeAsPNG(chart.createBufferedImage(500, 300));命令减小 JFreeChart Image 的宽度和高度值时,文本会自动调整为新行。

因此,经过更多研究,我得到了这个为我工作的命令。CategoryAxis通过创建一个X-Axis so getDomainAxis()对象Y-Axis it is getRangeAxis()

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

然后我们.setMaximumCategoryLabelWidthRatio(float ratio)根据您的要求使用和调整它!

于 2019-03-18T10:02:42.427 回答