JFreeChart: Linhas na frente da barra

Pessoal alguém sabe como eu faço pra colocar o gráfico de barra atras dos gráficos de linhas?

Estou usando JfreeChart, abaixo meu código que personaliza o gráfico:

//Personalizando os gráficos 
private JFreeChart createChartPPM(String criterio) throws SQLException {
    Double linhas = 0.0;
    Double rnc = 0.0;
    Double acc = 0.0;

    com.mysql.jdbc.Connection conn = dbConexao.getConnection();

    // Consulta SQL para trazer os rs e alimentar o grafíco 
    String query = "SELECT "
            + "SUBSTRING(Referencia,4,7) AS Referencia "//Mes/Ano
            + "FROM linhasfaturadas "
            + "WHERE Visivel = 1 "
            + "ORDER BY cod ASC ";

    // Criando java statement
    Statement st = conn.createStatement();

    // Executando a query, e trazendo o resultset
    ResultSet rs = st.executeQuery(query);

    // Setando os rs para o gráfico
    DefaultCategoryDataset dataset0 = new DefaultCategoryDataset();
    DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
    DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
    if (dataset0 == null || !rs.first()) {
        dataset0.addValue(0, "PPM", "Referencia");
    } else {
        do {
            //PPM
            dataset0.addValue(Integer.parseUnsignedInt(new DecimalFormat("#0").format((puxaRNCs(rs.getString("Referencia")) / puxaLinhas(rs.getString("Referencia"))) * 1000000)), "PPM", rs.getString("Referencia"));

            //PPM Acumulado 1
            linhas = (double) (linhas + puxaLinhas(rs.getString("Referencia")));
            rnc = (double) (rnc + puxaRNCs(rs.getString("Referencia")));
            acc = (rnc / linhas * 1000000);
            //PPM Acumulado 2
            dataset1.addValue(Integer.parseUnsignedInt(new DecimalFormat("#0").format(acc)), "PPM ACC", rs.getString("Referencia"));

            //Target
            dataset2.addValue(puxaTargetPPM(), "TARGET", rs.getString("Referencia"));

        } while (rs.next());
    }

    //PPM Mensal - Grafico Barra ===========================================
    CategoryItemLabelGenerator generator = new StandardCategoryItemLabelGenerator();
    CategoryItemRenderer renderer0 = new BarRenderer();
    renderer0.setItemLabelGenerator(generator);

    CategoryPlot plot = new CategoryPlot();
    plot.setDataset(dataset0);
    plot.setRenderer(renderer0);

    plot.setDomainAxis(new CategoryAxis(""));
    plot.getDomainAxis().setTickLabelsVisible(false);
    plot.setRangeAxis(new NumberAxis(""));

    plot.setOrientation(PlotOrientation.VERTICAL);
    plot.setRangeGridlinesVisible(true);
    plot.setDomainGridlinesVisible(true);

    //Personalizando as barras do gráfico
    BarRenderer bar = (BarRenderer) plot.getRenderer();
    bar.setMaximumBarWidth(.06); //seta a largura da barra
    bar.setGradientPaintTransformer(null);
    bar.setBarPainter(new StandardBarPainter());
    bar.setSeriesPaint(0, azul);
    bar.setShadowVisible(false);

    //Colocando legenda nas barras
    renderer0.setItemLabelsVisible(true);//Legenda da barra
    bar.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
    bar.setBaseItemLabelsVisible(true);
    bar.setBaseItemLabelFont(new Font("SansSerif", Font.BOLD, 16));
    bar.setBaseItemLabelPaint(new java.awt.Color(255, 255, 255));
    bar.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE6, TextAnchor.BOTTOM_CENTER, TextAnchor.BOTTOM_CENTER, 0));

    //Personalizando a área de plotagem do gráfico
    plot.setBackgroundPaint(new java.awt.Color(221, 221, 221));
    plot.setDomainGridlinesVisible(false);
    plot.setRangeGridlinesVisible(false);
    plot.setOutlineVisible(false);
    plot.setNoDataMessage("Aguarde até a proxima hora ou verifique o servidor");

    // Formatando o eixo X inferior que contem os meses
    CategoryAxis domainAxis = plot.getDomainAxis();
    domainAxis.setTickLabelsVisible(true);
    domainAxis.setTickLabelFont(new Font("SansSerif", Font.PLAIN, 12));

    // Ocultando o eixo Y lateral esquerdo que contem os valores
    NumberAxis rangeAxisEsquerdo = (NumberAxis) plot.getRangeAxis();
    rangeAxisEsquerdo.setVisible(false);//Ocultando o eixo Y lateral esquerdo que contem os valores
    rangeAxisEsquerdo.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    rangeAxisEsquerdo.setUpperMargin(0.1);
    rangeAxisEsquerdo.setTickUnit(new NumberTickUnit(2)); //traça o intervalo entre valores     

    //PPM ACC - Grafico Linha ==============================================
    CategoryItemRenderer renderer1 = new LineAndShapeRenderer();
    plot.setDataset(1, dataset1);
    plot.setRenderer(1, renderer1);

    // create the third dataset and renderer0...
    ValueAxis rangeAxis1 = new NumberAxis("");
    plot.getRangeAxis().setTickLabelsVisible(false);
    plot.setRangeAxis(1, rangeAxis1);//Linha 1 -> Linha 1

    //Personalizando as linhas do gráfico
    LineAndShapeRenderer lin1 = (LineAndShapeRenderer) plot.getRenderer(1);
    lin1.setDrawOutlines(true);
    lin1.setUseFillPaint(true);
    lin1.setFillPaint(Color.white);
    lin1.setSeriesPaint(0, verde);
    lin1.setSeriesStroke(0, new BasicStroke(2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 10.0f, new float[]{10.0f, 6.0f}, 0.0f));
    lin1.setShapesVisible(true);
    lin1.setSeriesShape(0, new Ellipse2D.Double(-3.0, -3.0, 6.0, 6.0));

    //Colocando legenda nas linhas
    lin1.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
    lin1.setBaseItemLabelsVisible(true);
    lin1.setBaseItemLabelPaint(new Color(51, 51, 51));
    lin1.setBaseItemLabelFont(new Font("SansSerif", Font.BOLD, 16));
    lin1.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BOTTOM_CENTER));

    // Ocultando o eixo Y lateral esquerdo que contem os valores
    NumberAxis rangeAxisDireito = (NumberAxis) plot.getRangeAxis(1);
    rangeAxisDireito.setVisible(false);//Ocultando o eixo Y lateral esquerdo que contem os valores
    rangeAxisDireito.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    rangeAxisDireito.setUpperMargin(0.1);
    rangeAxisDireito.setTickUnit(new NumberTickUnit(1)); //traça o intervalo entre valores

    //Target - Grafico Linha ===============================================
    plot.setDataset(2, dataset2);
    CategoryItemRenderer renderer2 = new LineAndShapeRenderer();
    plot.setRenderer(2, renderer2);
    plot.mapDatasetToRangeAxis(2, 0);//Linha 2 -> Barra

    //Personalizando as linhas do gráfico
    LineAndShapeRenderer lin2 = (LineAndShapeRenderer) plot.getRenderer(2);
    lin2.setDrawOutlines(true);
    lin2.setUseFillPaint(true);
    lin2.setFillPaint(Color.white);
    lin2.setSeriesPaint(0, vermelho);
    //lin2.setSeriesStroke(0, new BasicStroke(2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 10.0f, new float[]{10.0f, 6.0f}, 0.0f));
    lin2.setShapesVisible(true);
    lin2.setSeriesShape(0, new Ellipse2D.Double(-3.0, -3.0, 6.0, 6.0));

    //Colocando legenda nas linhas
    lin2.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
    lin2.setBaseItemLabelsVisible(true);
    lin2.setBaseItemLabelPaint(new Color(240, 128, 128));
    lin2.setBaseItemLabelFont(new Font("SansSerif", Font.BOLD, 16));
    lin2.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BOTTOM_CENTER));

    //////////////////////////////////////////////////////////////////////////////////Geral        
    JFreeChart chart = new JFreeChart(plot);
    chart.setBackgroundPaint(new java.awt.Color(221, 221, 221));

    //Personalizando a legenda inferior
    chart.getLegend().setVisible(false);
    chart.getLegend().setFrame(BlockBorder.NONE);
    chart.getLegend().setItemFont(new Font("SansSerif", Font.PLAIN, 12));
    chart.getLegend().setVerticalAlignment(VerticalAlignment.CENTER);
    chart.getLegend().setHorizontalAlignment(HorizontalAlignment.CENTER);

    dbConexao.close((com.mysql.jdbc.Connection) conn, st, rs);
    return chart;
}

Você precisa nos dar mais detalhes! Como assim “linha na frente da Barra”?

tipo, / ------ ?