Java 使用jfreechart时,带有类别的条形图和每个类别应有不同的颜色

Java 使用jfreechart时,带有类别的条形图和每个类别应有不同的颜色,java,jfreechart,bar-chart,Java,Jfreechart,Bar Chart,我想绘制不同类别的条形图。图表中的每个类别都应该用不同的颜色表示 下面是我的代码: JFreeChart chart = ChartFactory.createBarChart("Comparison between the average of 2 values", XAXIS_NAME, YAXIS_NAME, dataSet, PlotOrientation.VERTICAL, true, true, false);

我想绘制不同类别的条形图。图表中的每个类别都应该用不同的颜色表示

下面是我的代码:

JFreeChart chart = 
         ChartFactory.createBarChart("Comparison between the average of 2 values",
         XAXIS_NAME, YAXIS_NAME, dataSet, PlotOrientation.VERTICAL, true, true,
         false);    


    final CategoryPlot plot = chart.getCategoryPlot();
    chart.setBackgroundPaint(Color.white);       
    plot.setBackgroundPaint(Color.lightGray);
    plot.setDomainGridlinePaint(Color.white);
    plot.setRangeGridlinePaint(Color.white);
    BarRenderer renderer=new BarRenderer();

  System.out.print( "set the range axis to display integers only...");
    final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
    rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

      System.out.print( "disable bar outlines...");
    renderer = (BarRenderer) plot.getRenderer();
    renderer.setDrawBarOutline(false);
    renderer.setMaximumBarWidth(0.10);


      System.out.print( "set up gradient paints for series...");
final GradientPaint gp0 = new GradientPaint(
        0.0f, 0.0f, Color.blue, 
        0.0f, 0.0f, Color.lightGray
    );
    final GradientPaint gp1 = new GradientPaint(
        0.0f, 0.0f, Color.green, 
        0.0f, 0.0f, Color.lightGray
    );

    renderer.setSeriesPaint(0, gp0);
    renderer.setSeriesPaint(1, gp1);

看起来这个例子正是你想要的:或者,我找到了这个问题的解决方案。