Example usage for org.jfree.data.category DefaultCategoryDataset getColumnIndex

List of usage examples for org.jfree.data.category DefaultCategoryDataset getColumnIndex

Introduction

In this page you can find the example usage for org.jfree.data.category DefaultCategoryDataset getColumnIndex.

Prototype

@Override
public int getColumnIndex(Comparable key) 

Source Link

Document

Returns the column index for a given key.

Usage

From source file:keel.GraphInterKeel.datacf.visualizeData.VisualizePanelAttribute.java

private void infoAttribute() {
    this.enabledTable(true);
    // Extended info about selected attribute
    if (((VisualizePanel) this.getParent().getParent()).getData()
            .getAttributeTypeIndex(this.tableInfojTable.getSelectedRow()).equals("nominal")) {
        this.valuesjScrollPane.setEnabled(true);
        this.valuesjScrollPane.setVisible(true);
        this.valuesjTextPane.setEnabled(true);
        this.valuesjTextPane.setVisible(true);

        Vector r = ((VisualizePanel) this.getParent().getParent()).getData()
                .getRangesVar(((VisualizePanel) this.getParent().getParent()).getData()
                        .getAttributeIndex(this.tableInfojTable.getSelectedRow()));

        this.valuesjTextPane.setText("");
        this.valueAveragejLabel.setText("");
        this.valueVariancejLabel.setText("");
        this.valueRankjLabelIzdo.setText("  ");
        this.valueRankjLabelDcho.setText("  ");

        String cadena = new String();
        for (int i = 0; i < r.size(); i++) {
            if (i == 0) {
                cadena = r.elementAt(i).toString() + "";
                this.valuesjTextPane.setText(cadena);
            } else {
                cadena = this.valuesjTextPane.getText() + "\n" + r.elementAt(i).toString();
            }/*www. j a v a 2 s.c o  m*/
            this.valuesjTextPane.setText(cadena);
        }
        boolean legend = false;
        // Draw bar chart
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        try {
            for (int i = 0; i < ((VisualizePanel) this.getParent().getParent()).getData().getNData(); i++) {
                String column = ((VisualizePanel) this.getParent().getParent()).getData().getDataIndex(i,
                        this.tableInfojTable.getSelectedRow());
                String row = "";
                if (((VisualizePanel) this.getParent().getParent()).getOutAttribute() != -1
                        && this.tableInfojTable
                                .getSelectedRow() != ((VisualizePanel) this.getParent().getParent())
                                        .getOutAttribute()) {
                    row = "Class " + ((VisualizePanel) this.getParent().getParent()).getData().getDataIndex(i,
                            ((VisualizePanel) this.getParent().getParent()).getOutAttribute());
                    legend = true;
                }

                if (column != null) {
                    if (dataset.getRowIndex(row) == -1 || ((dataset.getColumnIndex(column) == -1))) {
                        dataset.addValue(1.0, row, column);
                    } else {
                        dataset.incrementValue(1.0, row, column);
                    }
                }
            }
        } catch (ArrayIndexOutOfBoundsException exp) {
            JOptionPane.showMessageDialog(this,
                    "The data set contains some errors. This attribute can not be visualized", "Error", 2);
        }

        this.chart = ChartFactory.createBarChart3D("", "", "", dataset, PlotOrientation.VERTICAL, legend, false,
                false);

        this.chart.setBackgroundPaint(new Color(0xFFFFFF));
        //BufferedImage image = this.chart.createBufferedImage(210, 140);
        BufferedImage image = this.chart.createBufferedImage(400, 240);
        this.imagejLabel.setIcon(new ImageIcon(image));
        this.clickToExpandjLabel.setVisible(true);
    } else {
        this.valuesjScrollPane.setEnabled(false);
        this.valuesjScrollPane.setVisible(false);
        this.valuesjTextPane.setEnabled(false);
        this.valuesjTextPane.setVisible(false);
        Vector r = ((VisualizePanel) this.getParent().getParent()).getData()
                .getRangesVar(((VisualizePanel) this.getParent().getParent()).getData()
                        .getAttributeIndex(this.tableInfojTable.getSelectedRow()));
        this.valueRankjLabelIzdo.setText(r.elementAt(0).toString());
        this.valueRankjLabelDcho.setText(r.elementAt(1).toString());

        // Average
        double m = 0.0;
        for (int i = 0; i < ((VisualizePanel) this.getParent().getParent()).getData().getNData(); i++) {
            String valor = ((VisualizePanel) this.getParent().getParent()).getData().getDataIndex(i,
                    this.tableInfojTable.getSelectedRow());
            if (valor != null) {
                m += Double.valueOf(valor).doubleValue();
            }
        }
        m = m / ((VisualizePanel) this.getParent().getParent()).getData().getNData();
        DecimalFormat df = new DecimalFormat();
        df.setMaximumFractionDigits(3);
        this.valueAveragejLabel.setText(df.format(m));
        // Variance
        double v = 0.0;
        for (int i = 0; i < ((VisualizePanel) this.getParent().getParent()).getData().getNData(); i++) {
            String valor = ((VisualizePanel) this.getParent().getParent()).getData().getDataIndex(i,
                    this.tableInfojTable.getSelectedRow());
            if (valor != null) {
                v += Math.pow(Double.valueOf(valor).doubleValue() - m, 2);
            }
        }
        v = v / (((VisualizePanel) this.getParent().getParent()).getData().getNData() - 1);
        this.valueVariancejLabel.setText(df.format(v));

        // Draw scatter plot
        XYSeriesCollection juegoDatos = new XYSeriesCollection();
        boolean legend = false;
        if (((VisualizePanel) this.getParent().getParent()).getOutAttribute() != -1) {
            Vector outputRang = ((VisualizePanel) this.getParent().getParent()).getData()
                    .getRange(((VisualizePanel) this.getParent().getParent()).getOutAttribute());
            XYSeries series[] = new XYSeries[outputRang.size()];
            for (int i = 0; i < outputRang.size(); i++) {
                series[i] = new XYSeries("Class " + outputRang.elementAt(i));
                juegoDatos.addSeries(series[i]);
            }
            for (int i = 0; i < ((VisualizePanel) this.getParent().getParent()).getData().getNData(); i++) {
                int clase = outputRang.indexOf(((VisualizePanel) this.getParent().getParent()).getData()
                        .getDataIndex(i, ((VisualizePanel) this.getParent().getParent()).getOutAttribute()));
                String valor = ((VisualizePanel) this.getParent().getParent()).getData().getDataIndex(i,
                        this.tableInfojTable.getSelectedRow());
                if (valor != null) {
                    series[clase].add(Double.parseDouble(Integer.toString(i)),
                            Double.valueOf(valor).doubleValue());
                }
            }
            legend = true;
        } else {
            XYSeries series = new XYSeries("Regresin");
            juegoDatos.addSeries(series);
            for (int i = 0; i < ((VisualizePanel) this.getParent().getParent()).getData().getNData(); i++) {
                String valor = ((VisualizePanel) this.getParent().getParent()).getData().getDataIndex(i,
                        this.tableInfojTable.getSelectedRow());
                if (valor != null) {
                    series.add(Double.parseDouble(Integer.toString(i)), Double.valueOf(valor).doubleValue());
                }
            }

        }

        chart = ChartFactory.createScatterPlot("", "", "", juegoDatos, PlotOrientation.VERTICAL, legend, false,
                false);
        chart.setBackgroundPaint(new Color(0xFFFFFF));
        //BufferedImage image = chart.createBufferedImage(210, 140);
        BufferedImage image = chart.createBufferedImage(400, 240);
        this.imagejLabel.setIcon(new ImageIcon(image));
        this.clickToExpandjLabel.setVisible(true);
    }
}

From source file:keel.GraphInterKeel.datacf.visualizeData.VisualizePanelCharts2D.java

private void ViewChartjButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ViewChartjButtonActionPerformed
    // Show comparing chart
    if ((this.attribute1jComboBox.getSelectedIndex() == -1)
            || (this.attribute2jComboBox.getSelectedIndex() == -1)) {
        JOptionPane.showMessageDialog(this, "There are no attributes selected", "Error", 2);
    } else if (((VisualizePanel) (this.getParent()).getParent()).getData()
            .getAttributeTypeIndex(this.attribute1jComboBox.getSelectedIndex()).equals("nominal")
            && ((VisualizePanel) (this.getParent()).getParent()).getData()
                    .getAttributeTypeIndex(this.attribute2jComboBox.getSelectedIndex()).equals("nominal")) {
        // Error message
        JOptionPane.showMessageDialog(this, "Only one attribute can be nominal", "Error", 2);
    } else if (((VisualizePanel) (this.getParent()).getParent()).getData()
            .getAttributeTypeIndex(this.attribute1jComboBox.getSelectedIndex()).equals("nominal")) {
        // Nominal in x axis --> vertical
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        boolean legend = false;
        for (int i = 0; i < ((VisualizePanel) (this.getParent()).getParent()).getData().getNData(); i++) {
            String column = ((VisualizePanel) (this.getParent()).getParent()).getData().getDataIndex(i,
                    this.attribute1jComboBox.getSelectedIndex());
            String row = "";
            if (((VisualizePanel) (this.getParent()).getParent()).getOutAttribute() != -1
                    && this.attribute1jComboBox
                            .getSelectedIndex() != ((VisualizePanel) (this.getParent()).getParent())
                                    .getOutAttribute()) {
                row = "Class " + ((VisualizePanel) (this.getParent()).getParent()).getData().getDataIndex(i,
                        ((VisualizePanel) (this.getParent()).getParent()).getOutAttribute());
                legend = true;/*ww w  .j a v  a2s  .c om*/
            }
            String valor = ((VisualizePanel) (this.getParent()).getParent()).getData().getDataIndex(i,
                    this.attribute2jComboBox.getSelectedIndex());
            if (valor != null && column != null) {
                if (dataset.getColumnIndex(column) == -1 || dataset.getRowIndex(row) == -1) {
                    dataset.addValue(Double.valueOf(valor).doubleValue(), row, column);
                } else {
                    dataset.incrementValue(Double.valueOf(valor).doubleValue(), row, column);
                }
            }
        }

        this.chart2 = ChartFactory.createBarChart3D("",
                ((VisualizePanel) (this.getParent()).getParent()).getData()
                        .getAttributeIndex(this.attribute1jComboBox.getSelectedIndex()),
                ((VisualizePanel) (this.getParent()).getParent()).getData()
                        .getAttributeIndex(this.attribute2jComboBox.getSelectedIndex()),
                dataset, PlotOrientation.VERTICAL, legend, false, false);
        this.chart2.setTitle(this.attribute1jComboBox.getSelectedItem().toString() + " vs "
                + this.attribute2jComboBox.getSelectedItem().toString());
        this.chart2.setBackgroundPaint(new Color(0xFFFFFF));
        BufferedImage image = this.chart2.createBufferedImage(600, 450);
        this.imagejLabel.setIcon(new ImageIcon(image));
        this.topdfjButton.setEnabled(true);
        this.topngjButton.setEnabled(true);
    } else if (((VisualizePanel) (this.getParent()).getParent()).getData()
            .getAttributeTypeIndex(this.attribute2jComboBox.getSelectedIndex()).equals("nominal")) {
        // Nominal in y axis --> horizontal
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        boolean legend = false;
        try {
            for (int i = 0; i < ((VisualizePanel) (this.getParent()).getParent()).getData().getNData(); i++) {
                String column = ((VisualizePanel) (this.getParent()).getParent()).getData().getDataIndex(i,
                        this.attribute2jComboBox.getSelectedIndex());
                String row = "";
                if (((VisualizePanel) (this.getParent()).getParent()).getOutAttribute() != -1
                        && this.attribute2jComboBox
                                .getSelectedIndex() != ((VisualizePanel) (this.getParent()).getParent())
                                        .getOutAttribute()) {
                    row = "Class " + ((VisualizePanel) (this.getParent()).getParent()).getData().getDataIndex(i,
                            ((VisualizePanel) (this.getParent()).getParent()).getOutAttribute());
                    legend = true;
                }
                String valor = ((VisualizePanel) (this.getParent()).getParent()).getData().getDataIndex(i,
                        this.attribute1jComboBox.getSelectedIndex());
                if (valor != null) {
                    if (dataset.getColumnIndex(column) == -1 || dataset.getRowIndex(row) == -1) {
                        dataset.addValue(Double.valueOf(valor).doubleValue(), row, column);
                    } else {
                        dataset.incrementValue(Double.valueOf(valor).doubleValue(), row, column);
                    }
                }
            }
        } catch (ArrayIndexOutOfBoundsException exp) {
            JOptionPane.showMessageDialog(this,
                    "The data set contains some errors. This attribute can not be visualized", "Error", 2);
        }
        this.chart2 = ChartFactory.createBarChart3D("",
                ((VisualizePanel) (this.getParent()).getParent()).getData()
                        .getAttributeIndex(this.attribute2jComboBox.getSelectedIndex()),
                ((VisualizePanel) (this.getParent()).getParent()).getData()
                        .getAttributeIndex(this.attribute1jComboBox.getSelectedIndex()),
                dataset, PlotOrientation.HORIZONTAL, legend, false, false);
        this.chart2.setTitle(this.attribute1jComboBox.getSelectedItem().toString() + " vs "
                + this.attribute2jComboBox.getSelectedItem().toString());
        this.chart2.setBackgroundPaint(new Color(0xFFFFFF));
        BufferedImage image = this.chart2.createBufferedImage(579, 330);
        this.imagejLabel.setIcon(new ImageIcon(image));
        this.topdfjButton.setEnabled(true);
        this.topngjButton.setEnabled(true);
    } else {
        XYSeriesCollection juegoDatos = new XYSeriesCollection();
        boolean legend = false;
        if (((VisualizePanel) (this.getParent()).getParent()).getOutAttribute() != -1) {
            legend = true;
            Vector outputRang = ((VisualizePanel) (this.getParent()).getParent()).getData()
                    .getRange(((VisualizePanel) (this.getParent()).getParent()).getOutAttribute());
            XYSeries series[] = new XYSeries[outputRang.size()];
            for (int i = 0; i < outputRang.size(); i++) {
                series[i] = new XYSeries("Class " + outputRang.elementAt(i));
                juegoDatos.addSeries(series[i]);
            }
            for (int i = 0; i < ((VisualizePanel) (this.getParent()).getParent()).getData().getNData(); i++) {
                int clase = outputRang.indexOf(((VisualizePanel) (this.getParent()).getParent()).getData()
                        .getDataIndex(i, ((VisualizePanel) (this.getParent()).getParent()).getOutAttribute()));
                String valor1 = ((VisualizePanel) (this.getParent()).getParent()).getData().getDataIndex(i,
                        this.attribute1jComboBox.getSelectedIndex());
                String valor2 = ((VisualizePanel) (this.getParent()).getParent()).getData().getDataIndex(i,
                        this.attribute2jComboBox.getSelectedIndex());
                if (valor1 != null) {
                    series[clase].add(Double.valueOf(valor1).doubleValue(),
                            Double.valueOf(valor2).doubleValue());
                }
            }
        } else {
            XYSeries series = new XYSeries("Regresin");
            juegoDatos.addSeries(series);
            for (int i = 0; i < ((VisualizePanel) (this.getParent()).getParent()).getData().getNData(); i++) {
                String valor1 = ((VisualizePanel) (this.getParent()).getParent()).getData().getDataIndex(i,
                        this.attribute1jComboBox.getSelectedIndex());
                String valor2 = ((VisualizePanel) (this.getParent()).getParent()).getData().getDataIndex(i,
                        this.attribute2jComboBox.getSelectedIndex());
                if (valor1 != null) {
                    series.add(Double.valueOf(valor1).doubleValue(), Double.valueOf(valor2).doubleValue());
                }
            }

        }
        // Numeric values
        this.chart2 = ChartFactory.createScatterPlot("",
                ((VisualizePanel) (this.getParent()).getParent()).getData()
                        .getAttributeIndex(this.attribute1jComboBox.getSelectedIndex()),
                ((VisualizePanel) (this.getParent()).getParent()).getData()
                        .getAttributeIndex(this.attribute2jComboBox.getSelectedIndex()),
                juegoDatos, PlotOrientation.VERTICAL, legend, false, false);
        this.chart2.setTitle(this.attribute1jComboBox.getSelectedItem().toString() + " vs "
                + this.attribute2jComboBox.getSelectedItem().toString());
        this.chart2.setBackgroundPaint(new Color(0xFFFFFF));
        BufferedImage image = this.chart2.createBufferedImage(579, 330);
        this.imagejLabel.setIcon(new ImageIcon(image));
        this.topdfjButton.setEnabled(true);
        this.topngjButton.setEnabled(true);
    }
}