18

棒グラフの棒の幅を調整する方法はありますか?

次のコードでチャートを作成します。

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

4 に答える 4

24

バーの最大幅を設定することもできます。これは、幅の広いグラフを使用しているが、データ ポイントが 1 つまたは 2 つしかない場合があり、領域全体を 1 つの大きな太いバーで占めたくない場合に便利です。

CategoryPlot categoryPlot = chart.getCategoryPlot();
BarRenderer br = (BarRenderer) categoryPlot.getRenderer();
br.setMaximumBarWidth(.35); // set maximum width to 35% of chart
于 2009-12-31T14:05:13.433 に答える
9

itemMargin正のマージンとゼロを使用して結果が得られなかった後、何が起こるかを確認するために負の数を使用してみました。バーは太くなり始めました。ただし、十分なスペースがないとオーバーラップするため、これが推奨されるかどうかはわかりません。

BarRenderer renderer = (BarRenderer) chart.getCategoryPlot().getRenderer();
renderer.setItemMargin(-2);
于 2010-06-15T01:54:26.157 に答える
9

バーの幅を直接指定することはできませんが、幅に影響する変更可能な属性がいくつかあります。CategoryAxis によって定義されたlowerMarginupperMargin、およびcategoryMargin属性、または BarRenderer のitemMargin属性を確認する必要があります。

例えば:

    BarRenderer renderer = (BarRenderer) chart.getCategoryPlot().getRenderer();
    renderer.setItemMargin(.1);

で指定された doublesetItemMargin(double percent)は、同じカテゴリ内のバー間のスペースに使用されるカテゴリ軸の全体の長さのパーセンテージです (デフォルトは .2 または 20%)。この値が小さいほど、バーは大きくなります。

于 2009-12-29T12:05:25.377 に答える
5

Dave Gilbert (JFreeChart プロジェクトリーダー) によると

棒の幅は自動的に計算され、グラフまたはプロットの幅とデータセット内のアイテムの数によって異なります。

ここでの議論を参照してください。

于 2009-12-29T10:45:52.040 に答える