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.
First Look at the Picture carefully
Here is some Explanation w.r.t Numbers.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With