我使用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个组的图片
带一列键和2组的图片
最佳答案
您可能想要探索setItemMargin()
中更多的负范围,如here所示。您可以调整滑块以找到数据集的最佳值。在下图中,初始设置为SLIDER_INITIAL_VALUE * INCREMENT
,即–4.2
。