JFreeChart能实现这个效果吗

各位DL,需求:两根柱状图,四个属性a,b,c,d 第一根根据a,b属性生成叠形柱状图,第二根根据c,d属性生成叠形柱状图
只能做出两个属性或者四个属性叠在一起的的叠行柱状图,搞了几天都不行,求DL赐教

img

可以使用JFreeChart库来创建两个叠形柱状图,分别基于属性a、b和属性c、d。以下是一个简单的示例代码:

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.DefaultCategoryDataset;

public class BarChartExample {
    public static void main(String[] args) {
        // 创建数据集1,添加属性a、b的数据
        DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
        dataset1.addValue(10, "Series 1", "Category 1");
        dataset1.addValue(20, "Series 1", "Category 2");
        dataset1.addValue(30, "Series 1", "Category 3");
        dataset1.addValue(40, "Series 1", "Category 4");

        // 创建数据集2,添加属性c、d的数据
        DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
        dataset2.addValue(50, "Series 2", "Category 1");
        dataset2.addValue(60, "Series 2", "Category 2");
        dataset2.addValue(70, "Series 2", "Category 3");
        dataset2.addValue(80, "Series 2", "Category 4");

        // 创建图表1,基于属性a、b的数据
        JFreeChart chart1 = ChartFactory.createStackedBarChart(
                "Chart 1",
                "Category",
                "Value",
                dataset1);

        // 创建图表2,基于属性c、d的数据
        JFreeChart chart2 = ChartFactory.createStackedBarChart(
                "Chart 2",
                "Category",
                "Value",
                dataset2);

        // 显示图表
        ChartFrame frame1 = new ChartFrame("Chart 1", chart1);
        frame1.pack();
        frame1.setVisible(true);

        ChartFrame frame2 = new ChartFrame("Chart 2", chart2);
        frame2.pack();
        frame2.setVisible(true);
    }
}

上述代码中创建了两个数据集,分别基于属性a、b和属性c、d。然后使用ChartFactory.createStackedBarChart()方法创建两个叠形柱状图,最后将它们显示在窗体中。

如果您想要将这两个叠形柱状图合并为一个,可以通过创建一个新的数据集,将属性a、b和属性c、d的数据都添加到其中,然后使用ChartFactory.createStackedBarChart()方法创建一个新的叠形柱状图。