如何正确使用JFreeChart自动范围



我在创建的图上手动创建y轴的范围,但看到有一些属性表明JFreeChart可以为您生成它们。

它已经为y轴生成了一个合理的最大值,但无论我尝试做什么,在生成图时都无法实际考虑setAutoRangeIncludesZero(boolean)

以下是生成和操作图形的相关代码:

barChart = ChartFactory.createBarChart("Classifiers' accuracy for " + position + "s", 
           "Missing Value Imputation Method Combination", 
           "Average accuracy (%)", dataset, 
           PlotOrientation.VERTICAL, true, false, false);
plot = (CategoryPlot)barChart.getCategoryPlot();
xAxis = (CategoryAxis)plot.getDomainAxis();
xAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
yAxis = (NumberAxis)plot.getRangeAxis();
yAxis.setAutoRangeIncludesZero(false);
barChartImage = new File(position + "-Classification" + ".png");

我还尝试过首先使用setAutoRange(true)将y轴作为ValueAxis,然后使用setAutoRangeIncludesZero(false)将y轴强制转换为NumberAxis

每次,y轴仍然从0开始。

感谢@doublep在私人聊天中给出的答案。

我使用的是条形图,结果默认情况下BarRenderer将范围的基数设置为0。要覆盖此项,您只需要从绘图对象中获取渲染器,并将其强制转换为类型BarRenderer,然后调用setIncludeBaseInRange(false),这将防止默认值0包含在范围中。

相关内容

  • 没有找到相关文章

最新更新