各位DL,需求:两根柱状图,四个属性a,b,c,d 第一根根据a,b属性生成叠形柱状图,第二根根据c,d属性生成叠形柱状图
只能做出两个属性或者四个属性叠在一起的的叠行柱状图,搞了几天都不行,求DL赐教
可以使用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()
方法创建一个新的叠形柱状图。