棒グラフの棒の幅を調整する方法はありますか?
次のコードでチャートを作成します。
final JFreeChart chart = ChartFactory.createBarChart("Report", // chart title
"Date", // domain axis label
"Number", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips?
false // URLs?
);
バーの最大幅を設定することもできます。これは、幅の広いグラフがあるが、データポイントが1つまたは2つしかなく、1つの大きな太いバーが領域全体を占めることを望まない場合に便利です。
CategoryPlot categoryPlot = chart.getCategoryPlot();
BarRenderer br = (BarRenderer) categoryPlot.getRenderer();
br.setMaximumBarWidth(.35); // set maximum width to 35% of chart
バーの幅を直接指定することはできませんが、幅に影響を与える変更可能な属性がいくつかあります。 lowerMargin、upperMarginおよび-を確認する必要があります。 categoryMargin CategoryAxisによって定義された属性またはitemMargin BarRendererの属性。
例えば:
_ BarRenderer renderer = (BarRenderer) chart.getCategoryPlot().getRenderer();
renderer.setItemMargin(.1);
_
setItemMargin(double percent)
で指定されたdoubleは、同じカテゴリ内のバー間のスペースに使用されるカテゴリ軸の全長のパーセンテージです(デフォルトは.2または20%)。この値が小さいほど、バーは大きくなります。
正のマージンとゼロを使用しても結果が得られなかった後、itemMargin
に負の数を使用して、何が起こるかを確認しました。バーが太くなり始めました。ただし、十分なスペースがないとオーバーラップするため、これが推奨されるかどうかはわかりません。
BarRenderer renderer = (BarRenderer) chart.getCategoryPlot().getRenderer();
renderer.setItemMargin(-2);
Dave Gilbert(JFreeChartプロジェクトリーダー)によると
バーの幅は自動的に計算され、グラフまたはプロットの幅とデータセット内のアイテムの数によって異なります。
ディスカッションを参照してください ここ 。