java - 瀑布图 - 条形图之间的空间

标签 java jfreechart

我正在使用 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;
}

输出:

enter image description here

最佳答案

经过调试,我发现WaterfallBarRenderer忽略了renderer.setItemMargin(double)方法设置的值。

我可以使用下面的代码在条之间添加空格。

CategoryPlot plot = (CategoryPlot)chart.getPlot();
CategoryAxis categoryAxis = plot.getDomainAxis();
categoryAxis.setCategoryMargin(0.5);

enter image description here

关于java - 瀑布图 - 条形图之间的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57929759/

相关文章:

java - 在输出流中写入 imageicon

java - 无法在 Spring 中自动连接我的身份验证过滤器中的服务

java - 它抛出 500 Failed to evaluate expression 'ROLE_USER' in spring security

java - JFreeChart getSeriesStroke/Paint/Shape 返回 null

java - 将动态数据集映射到 JFreeChart 中的不同轴

java - 为什么甘特图中没有显示正确的数据?

java - spring hibernate 自动接线 - 在自动接线 sessionFactory 上获取 NPE - httpinvoker 远程处理项目

java - 测试中的一个问题(递归设计) - 树 - Java

java - 如何将 JSON 输入传递给 JFreeChart

java - XY 图 : Annotation is placed incorrectly with respect to Y axis