JFreeChart Preciso deletar os dados clicados

public XYSeries atualiza (Matrix matriz,XYSeries dados){
double x = 0,y = 0;
int index = 0;
dados.clear();

    for (int j = 0; j <matriz.getRowDimension(); j++) {
    x = matriz.get(j,1);
    y = matriz.get(j,2);
    
   if(!valoresX.contains(x)||(!valoresY.contains(y))){
    if(valoresY.contains(y))  
      matriz.set(j,2,0);
    if(valoresX.contains(x))
    matriz.set(j,1,0);  
    dados.add(x,y);
    
    
   }
   
    }

return dados;
}

public Matrix criaGrafico(String teste,String beta,Matrix matriz){
    
colecaoDeSeries.addSeries(atualiza(matriz,series));


    // create a chart...
    JFreeChart grafico = ChartFactory.createScatterPlot(
        "Gráfico de Resíduos", // chart title
        "Variável Estimada ", // x axis label
        "Erro % ", // y axis label
        colecaoDeSeries, //dados
        PlotOrientation.VERTICAL,
        true, // include legend
        false, // tooltips
        false // urls                      
    );
          
    
  
      
    XYPlot plot =  grafico.getXYPlot();
    plot.setDomainCrosshairVisible(true);
    plot.setRangeCrosshairVisible(true);
    plot.setDomainCrosshairLockedOnData(true);
    plot.setDomainZeroBaselineVisible(true);
    plot.setRangeZeroBaselineVisible(true);
     
    
    



    // create and display a frame...
    ChartFrame frame = new ChartFrame("First", grafico, true);
    ChartPanel painel = new ChartPanel(grafico);

    
    
    
    
    
    
    
    frame.pack();
    frame.setVisible(true);  

    
    
    grafico.addProgressListener(new ChartProgressListener() {
        @Override
      
   public void chartProgress(ChartProgressEvent e) {               

        valoresX.add(plot.getDomainCrosshairValue());
        valoresY.add(plot.getRangeCrosshairValue());
        matriz.set(0, 0, 0);
        atualiza(matriz,series);

// }

      //}
      
            
        }
    });

 
   return matriz;
   
   
   
   
   
   



    
    
    
    
 
    
    
}