我正在使用 JFreeChart v1.5.0 并使用示例数据集创建瀑布图,如下面的代码所示。我能够在 BarRenderer API 的帮助下向使用 createBarChart() 创建的条形添加空间,但是当我使用 createWaterFallChart() 创建瀑布图并尝试使用相同的 BarRenderer API 向条形添加空间时,但我做不到。
我使用 setItemMargin(double) API 来实现输出,但没有任何反应。
private CategoryDataset createDataset() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(15.76, "Series 1", "Group A");
dataset.addValue(-8.66, "Series 1", "Group B");
dataset.addValue(4.71, "Series 1", "Group C");
dataset.addValue(-3.51, "Series 1", "Group D");
dataset.addValue(32.64, "Series 1", "Group E");
return dataset;
}
public JFreeChart createChart() {
JFreeChart chart = ChartFactory.createWaterfallChart(
"Waterfall Chart",
"X-Axis",
"Y-Axis",
createDataset(),
PlotOrientation.VERTICAL,
true,
true,
false
);
CategoryPlot plot = (CategoryPlot) chart.getPlot();
NumberAxis yAxis = (NumberAxis)plot.getRangeAxis();
yAxis.setRange(0.0, 50.0);
yAxis.setTickUnit(new NumberTickUnit(10.0));
BarRenderer renderer = (BarRenderer) plot.getRenderer();
renderer.setDrawBarOutline(false);
//Spaces between bars - not working
renderer.setItemMargin(0.5);
return chart;
}
输出:
最佳答案
经过调试,我发现WaterfallBarRenderer
忽略了renderer.setItemMargin(double)
方法设置的值。
我可以使用下面的代码在条之间添加空格。
CategoryPlot plot = (CategoryPlot)chart.getPlot();
CategoryAxis categoryAxis = plot.getDomainAxis();
categoryAxis.setCategoryMargin(0.5);
关于java - 瀑布图 - 条形图之间的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57929759/