关闭JFreeChart条形图中的空白区域

我正在使用JFreeChart并希望显示玩家得分的条形图,其中y轴上的得分和x轴上的玩家游戏。

例如

 String[] {Player name, score, game number} Player 1, 10 , 1 Player 1, 12 , 2 Player 1, 15 , 3 Player 2, 11 , 1 Player 3, 18 , 1 

因为玩家不必玩相同数量的游戏,所以当创建数据集时,这会导致大量空白,因为它试图为玩家2和3游戏2和3绘制条形图。

 data.addValue(score, game number, player name); 

输出:(数字不匹配,这只是我敲了一个快速测试) 注意玩家1游戏3和玩家3游戏1和2中的空白区域

任何人都可以帮我解决这个空白区域的问题吗? 从理论上讲,玩家1可以继续玩2个玩家,玩家2和玩家只玩3个,所以看起来很荒谬! 我是JFreeChart的新手,所以可能有一个明显的解决方案!

预先感谢您的帮助。

首先仔细看看图片 在此处输入图像描述

这是一些解释数字。

  1. setLowerMargin(双边距)。
  2. setUpperMargin(双边距)。
  3. setCategoryMargin(双边距)。
  4. setItemMargin(双边距)。

以下是如何使用图表中的方法

  CategoryPlot p = chart.getCategoryPlot(); CategoryAxis axis = p.getDomainAxis(); axis.setLowerMargin(0.1); axis.setUpperMargin(0.1); axis.setCategoryMargin(0.1); BarRenderer renderer = (BarRenderer) p.getRenderer(); renderer.setItemMargin(0.1); 

您可以将值设置在0.0到1.0之间(示例0.1表示10%)

希望这可以帮助

(更新后你的评论)在这种情况下你应该使用分层条形图

在此处输入图像描述