我正在使用 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 可以继续玩 100 场游戏,而玩家 2 和 3 只玩几场,所以这看起来很荒谬! 我是 JFreeChart 的新手,所以可能有一个明显的解决方案!
预先感谢您的帮助。
最佳答案
先仔细看图
这里有一些关于数字的解释。
- setLowerMargin(双倍边距)。
- setUpperMargin(双边距)。
- setCategoryMargin(双边距)。
- 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%)
希望对您有所帮助
(评论后更新) 那么在这种情况下,您应该使用分层条形图
关于java - 关闭 JFreeChart 条形图中的空白区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16725545/