Closing up blank space in JFreeChart bar chart

蓝咒 提交于 2019-11-27 02:31:39

问题


I am using JFreeChart and would like to display a bar chart of player's scores, with the score on the y-axis and the player's games grouped on the x-axis.

e.g.

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

Because the players do not have to play the same number of games, this results in a lot of blank space when the dataSet is created, as it tries to plot a bar for Player 2 & 3 games 2 & 3.

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

Output: (the numbers dont quite match, this was just a quick test I knocked up)

Can anybody help me with how to close up this blank space? In theory player 1 could go on to play 100s of games with player 2 and 3 playing only a few, so it would look quite ridiculous! I am new to JFreeChart so there is probably an obvious solution!

Thank you in advance for your help.


回答1:


First Look at the Picture carefully

Here is some Explanation w.r.t Numbers.

  1. setLowerMargin(Double margin).
  2. setUpperMargin(Double margin).
  3. setCategoryMargin(Double margin).
  4. setItemMargin(Double margin).

Here is How you can use the methods in your chart

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

You can set the value between 0.0 to 1.0 (example 0.1 means 10%)

Hope this Helps

(Update After your comment) Well in this Case you should use Layered Bar Chart



来源:https://stackoverflow.com/questions/16725545/closing-up-blank-space-in-jfreechart-bar-chart

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!