0

問題を解決するために GroupedStackedBarRenderer を使用して StackedBarChart を作成しましたhttps://stackoverflow.com/questions/18349933/how-to-create-a-stacked-bar-chart-with-multiple-rows-inside-one-row

列キーと行キー、グループをいくつでも持つことができます。以下に、プログラムのスクリーンショットをいくつか添付しました。問題は、標準ビューを取得できなかったことです (バー間のスペース、入力が少ない場合はバーが大きすぎる、内部に書かれたテキストが表示されないバーが細すぎる)。このユースケースを実装する前に、setMaxbarWidthを使用しますが、今は機能しません。

バーを配置するために使用するコードは次のとおりです。

    CategoryPlot plot = (CategoryPlot) chart.getPlot();
    plot.setBackgroundPaint(Color.WHITE);
    chart.setBackgroundPaint(new Color(238, 238, 238));
    GroupedStackedBarRenderer renderer = new GroupedStackedBarRenderer();
    //Some insertion here
    KeyToGroupMap map = new KeyToGroupMap("A");
    renderer.setSeriesToGroupMap(map);
    renderer.setItemMargin(0.0);
    /** causes to show bar width half of available space. */
    renderer.setMaximumBarWidth(.5);
    renderer.setDrawBarOutline(true);
    renderer.setShadowVisible(false);
    plot.setRenderer(renderer);
    /** get number axis in plot.Number related axis .x axis in this graph. */
    NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();

    renderer.setBaseToolTipGenerator(new CustomToolTipGenerator(getGraphData()));
    renderer.setBarPainter(new StandardBarPainter());
    /** do not show thick in number axis label */
    rangeAxis.setTickLabelsVisible(false);
    rangeAxis.setTickMarksVisible(false);
    rangeAxis.setAxisLineVisible(false);
    CategoryAxis categoryAxis = plot.getDomainAxis();
    categoryAxis.setCategoryMargin(0.05);
    // categoryAxis.setLowerMargin(0.05);
    // categoryAxis.setUpperMargin(0.05);
    categoryAxis.setTickLabelsVisible(false);
    categoryAxis.setTickMarksVisible(false);
    categoryAxis.setAxisLineVisible(false);

CategoryDomain にはいくつかのメソッド (setlowerMargin、setCategoryMargin、setUpperMargin) があることを知っています。これらのメソッドをいくつか試してみましたが、成功しませんでした。なぜ棒と棒の間がこんなに広いのか理解できませんでした。助けてください

3列キーと6グループの画像

ここに画像の説明を入力 2列キーと4グループの画像

ここに画像の説明を入力

1 つの列キーと 2 つのグループの画像

ここに画像の説明を入力

4

2 に答える 2

1

ここsetItemMargin()に示すように、 の負の範囲をさらに調査することをお勧めします。スライダーを調整して、データセットに最適な値を見つけることができます。下の画像では、初期設定はです。これはです。SLIDER_INITIAL_VALUE * INCREMENT–4.2

画像

于 2013-08-22T15:19:13.347 に答える